LeetCode88. Merge Sorted Array
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.
比较容易想到的是开一个新的临时数组,然后依次比较两个数组中的值,每次比较将较小的值放入临时数组中。这样做完全可以但是好像不让用额外空间……
要在两个原数组上进行操作的话,题目其实也给了充分的条件,就是nums1的大小是足够容下m+n个数的,也就是说,完成归并前的nums1在下标为m-1后面时还有多余的空间,我们完全可以利用这部分空间来作为刚刚提到的“临时数组”。
比较时从后往前比,将较大的那个值放在nums1中,同时往前移动对应数组的下标。需要注意的是,较长的那个数组可能没有查看完,最后应该检查。