**Description**Hints**Submissions**Solutions

Total Accepted: 162541 Total Submissions: 510745 Difficulty: Easy Contributor: LeetCode

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.

Hide Company Tags  Microsoft Bloomberg Facebook Hide Tags  Array Two Pointers Hide Similar Problems  (E) Merge Two Sorted Lists

** 解题思路 **
use two pointers , 从两个array 最后面开始merge

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
    // use two pointers , 从两个array 最后面开始merge
    public void merge(int[] nums1, int m, int[] nums2, int n) {
      int i = m - 1;
      int j = n - 1;
      int k = m + n - 1;
      while (i >= 0  && j >= 0) {
          nums1[k--] = (nums1[i] > nums2[j]) ? nums1[i--] : nums2[j--];
      }
      
      while (j >= 0 ) {
          nums1[k--] = nums2[j--];
      }
    }