首页 > 代码库 > [leetcode] Merge Sorted Array
[leetcode] Merge Sorted Array
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); }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。