Although it is a simple question, it must be carefully treated.

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int current = m + n - 1;
        int index1 = m - 1;
        int index2 = n - 1;
        
        while (index1 >= 0 || index2 >= 0) {
            int i1 = Integer.MIN_VALUE;
            int i2 = Integer.MIN_VALUE;
            if (index1 >= 0) {
                i1 = nums1[index1];
            }
            
            if (index2 >= 0) {
                i2 = nums2[index2];
            }
            
            if (i1 > i2) {
                nums1[current--] = nums1[index1--];
            } else {
                nums1[current--] = nums2[index2--];
            }
        }
    }
}

 

posted on 2017-08-28 13:11  keepshuatishuati  阅读(85)  评论(0编辑  收藏  举报