Leetcode[88] Merge Sorted Array

###Task Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note: You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.

###Python

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.
        """
        if nums1 == None or nums2 == None:
            return
        if len(nums1) == 0 or len(nums2) == 0:
            return
        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
        while n > 0:
            nums1[n - 1] = nums2[n - 1]
            n -= 1
            

###Java

public class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
    	//this is indeed simple TAT why I cannot figure this out
        if (nums1 == null || nums2 == null || nums1.length < m || nums2.length < n) {
        	return ;
        }
        int i = m - 1; 
        int j = n - 1;
        int pos = m + n - 1;
        while (i >= 0 && j >= 0) {
        	if (nums1[i] > nums2[j]) {
        		nums1[pos--] = nums1[i--];
        	} else {
        		nums1[pos--] = nums2[j--];
        	}
        }

        while (i >= 0) {
        	nums1[pos--] = nums1[i--];
        }

        while (j >= 0) {
        	nums1[pos--] = nums2[j--];
        }
        return;
    }
}

###Points