BiruLyu
7/26/2017 - 10:01 PM

88. Merge Sorted Array(#Two Pointers).java

class Solution(object):
    def merge(self, nums1, m, nums2, n):
        """
        :type nums1: List[int]
        :type m: int
        :type nums2: List[int]
        :type n: int
        :rtype: void Do not return anything, modify nums1 in-place instead.
        """
        
        while m > 0 and n > 0:
            if nums1[m-1] >= nums2[n-1]:
                nums1[m+n-1] = nums1[m-1]
                m -= 1
            else:
                nums1[m+n-1] = nums2[n-1]
                n -= 1
        if n > 0:
            nums1[:n] = nums2[:n]
public class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        
        int i = m - 1, j = n - 1, k = m + n - 1;
        
        while(i > -1 && j > -1) nums1[k--] = (nums1[i] > nums2[j]) ? nums1[i--] : nums2[j--];
        while(j > -1) nums1[k--] = nums2[j--];
        
    }
}