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.
https://oj.leetcode.com/problems/merge-sorted-array/
思路:这题的技巧是从后面开始merge。
/** * http://blog.csdn.net/havenoidea/article/details/12033023 */ public class Solution { public void merge(int A[], int m, int B[], int n) { if (m < 0 || n < 0) return; int i = m - 1; int j = n - 1; int p = m + n - 1; while (i >= 0 && j >= 0) { if (A[i] > B[j]) { A[p--] = A[i--]; } else { A[p--] = B[j--]; } } if (j >= 0) { while (j >= 0) A[p--] = B[j--]; } } public static void main(String[] args) { int[] a = new int[] { 1, 2, 0, 0, 0, 0 }; int m = 2; int[] b = new int[] { 1, 3, 5 }; int n = 3; new Solution().merge(a, m, b, n); } }
[leetcode] Merge Sorted Array,布布扣,bubuko.com
原文:http://www.cnblogs.com/jdflyfly/p/3819173.html