Leetcode之Merge Sorted Array 问题

问题描述:

Given two sorted integer arrays nums1 and nums2, merge nums2 intonums1 as one sorted array.

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

问题来源:Merge Sorted Array (详细地址:https://leetcode.com/problems/merge-sorted-array/description/)

思路分析:很自然的想法就是从左往右一个一个比较,然后谁小谁就存起来,接下来较大的那个继续比较,一直比较下去就好了。但是,这种暴力解决的方法就没有充分利用题目给出的数组已经是排好序的条件了,所以,我们可以先求出总共需要多少个坑,假设这些坑都存在于第一个数组nums1中,然后从后面开始比较,谁大谁就不动,较小的那个就开始从右往前填并往前挪一个位置。另外,我们需要考虑的是如果其中一个更长的话咋办?比如说,那直接就不用动了啊,因为就只有剩下的这些数了啊,而且它们都是已经排好序的;反之,如果nums2更长的话,那也简单啊,就把它们复制到nums1的相应位置就ok了。

代码:

Leetcode之Merge Sorted Array 问题