码迷,mamicode.com
首页 > 其他好文 > 详细

Merge Sorted Array

时间:2016-08-03 11:56:22      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

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

Notice

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

 

class Solution {
public:
    /**
     * @param A: sorted integer array A which has m elements, 
     *           but size of A is m+n
     * @param B: sorted integer array B which has n elements
     * @return: void
     */
    void mergeSortedArray(int A[], int m, int B[], int n) {
        // write your code here
        int i;
        for (i = m+n-1; i >= 0, n>0, m>0; --i){
            if(A[m-1] > B[n-1]){
                A[i] = A[m-1];
                --m;
            } else {
                A[i] = B[n-1];
                --n;
            }
        }
        
        if(m==0){
            for(int k = n-1; k>=0; --k){
                A[i] = B[k];
                --i;
            }
        } 
    }
};

漂亮的写法

public class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        if(nums2 == null || n == 0) return ;
        int i = m - 1, j = n - 1; 
        while(i >= 0 && j >= 0) {
            if(nums1[i] > nums2[j]) {
                nums1[i + j + 1] = nums1[i];
                --i;
            } else {
                nums1[i + j + 1] = nums2[j];
                --j;
            }
        }
        while(j >= 0) {
            nums1[j] = nums2[j];
            --j;
        }
    }
}

 

Merge Sorted Array

标签:

原文地址:http://www.cnblogs.com/codingEskimo/p/5732090.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!