lintcode--合并排序数组

来源:互联网 发布:如何配置子域名 编辑:程序博客网 时间:2024/06/05 08:44

合并两个排序的整数数组A和B变成一个新的数组。

 注意事项

你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。

样例

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

合并之后 A 将变成 [1,2,3,4,5]



class Solution {
       /**
     * 从数组A和B的尾部遍历比较元素,大的放在数组A的后面。最后如果B中还有元素,将其加入A中。
注意:不必在B中的元素遍历完后再次遍历A中的元素,因为他们已经在A中了。
     */
    public void mergeSortedArray(int[] A, int m, int[] B, int n) {
        // write your code here
        int i= m-1;int j = n-1;int end = m+n-1;
        while(i>=0&&j>=0){
            if(A[i]>B[j]){
                A[end] = A[i];
                end--;
                i--;
            }else{
                A[end] =B[j];
                end--;
                j--;
            }
        }
        while(i>=0){
            A[end] = A[i];
            end--;
            i--;
        }
        while(j>=0){
            A[end] = B[j];
            end--;
            j--;
        }
        
    }
}

原创粉丝点击