CODE 45: Merge Sorted Array
2013-09-23 22:43
316 查看
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 to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
Note:
You may assume that A has enough space to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
public void merge(int A[], int m, int B[], int n) { // Start typing your Java solution below // DO NOT write main() function if (null == B) { return; } int[] insert = new int[n + 1]; insert[0] = -1; int insertIndex = 1; int lastJ = 0; for (int i = 0, j = 0; j < m && i < n;) { if (A[j] < B[i]) { j++; continue; } else { insert[insertIndex] = insert[insertIndex - 1] + j - lastJ + 1; insertIndex++; int k; for (k = i + 1; k < n; k++) { if (B[k] <= A[j]) { insert[insertIndex] = insert[insertIndex - 1] + 1; insertIndex++; } else { break; } } i += k - i; lastJ = j; } } int moveStep = insertIndex - 1; for (int i = m - 1; i >= 0; i--) { if (insert[moveStep] != i + moveStep || moveStep == 0) { A[i + moveStep] = A[i]; } else { A[i + moveStep] = B[moveStep - 1]; i++; moveStep--; } } if (moveStep != 0) { for (int i = 0; i < moveStep; i++) { A[i] = B[i]; } } if (insertIndex - 1 < n) { for (int i = m - 1 + insertIndex; i < m + n; i++) { A[i] = B[i - m]; } } }
相关文章推荐
- [LeedCode OJ]#88 Merge Sorted Array
- LintCode Merge Sorted Array 合并排序数组
- Lintcode: Merge Sorted Array II
- LintCode Merge Sorted ArrayII 合并排序数组 II
- 1.【排序】Merge Sorted Array--Accepted Java code
- (lleetcode)Merge Sorted Array
- LintCode Merge Sorted Array II
- [leet code] Merge Sorted Array
- lintcode:Merge Sorted Array
- lintcode之Merge Sorted Array
- merge-sorted-array Java code
- 【LeetCode with Python】 Merge Sorted Array
- 【Leetcode】Merge Sorted Array
- [LeetCode] Merge Sorted Array
- Merge Sorted Array
- leetcode[88]Merge Sorted Array
- LeetCode Merge Sorted Array
- 【LeetCode-88】Merge Sorted Array(C++)
- Merge Sorted Array
- leetcode-Merge Sorted Array(2014.2.8)