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 and n respectively.
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 and n respectively.
初始化Index = m + n,从大到小开始merge。
public class Solution { //Time: O(m + n) Space: O(1) public void merge(int A[], int m, int B[], int n) { int index = m + n; while (m > 0 || n > 0) { if (m == 0) { A[--index] = B[--n]; } else if (n == 0) { return; } else { if (A[m - 1] > B[n - 1]) { A[--index] = A[--m]; } else { A[--index] = B[--n]; } } } } }
No comments:
Post a Comment