LeetCode | Merge Sorted Array

2014-11-24 10:20:27 · 作者: · 浏览: 0

题目

Given two sorted integer arrays A and B, merge B into A as one sorted array.

Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m andn respectively.

分析

从后往前归并就可以不用额外空间了。

代码

public class MergeSortedArray {
	public void merge(int A[], int m, int B[], int n) {
		int i = m - 1;
		int j = n - 1;
		while (i >= 0 && j >= 0) {
			if (A[i] > B[j]) {
				A[i + j + 1] = A[i];
				--i;
			} else {
				A[i + j + 1] = B[j];
				--j;
			}
		}
		while (j >= 0) {
			A[j] = B[j];
			--j;
		}
	}
}