lintcode-easy-Merge Sorted Array

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

A = [1, 2, 3, empty, empty], B = [4, 5]

After merge, A will be filled as [1, 2, 3, 4, 5]

 

class Solution {
    /**
     * @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
     */
    public void mergeSortedArray(int[] A, int m, int[] B, int n) {
        // write your code here
        if(A == null || B == null)
            return;
        
        int k = m + n - 1;
        int i = m - 1;
        int j = n - 1;
        
        for(; k >= 0; k--){
            int numberA = Integer.MIN_VALUE;
            int numberB = Integer.MIN_VALUE;
            
            if(i >= 0)
                numberA = A[i];
            if(j >= 0)
                numberB = B[j];
            
            if(numberA > numberB){
                A[k] = numberA;
                i--;
            }
            else{
                A[k] = numberB;
                j--;
            }
        }
        
        return;
    }
}

 

posted @ 2016-03-02 13:41  哥布林工程师  阅读(175)  评论(0编辑  收藏  举报