您的位置:首页 > 其它

leetcode-88. Merge Sorted Array

2016-04-27 20:42 405 查看
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.

Subscribe to see which companies asked this question

思路:nums1的值整体往后移动n位,然后两个指针分别指着对应起点,依次比较小的从nums[0]开始放。

class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
//思路:nums1先整体向后移动n位,再从头开始两个指针一个一个比较排序
for(int i = m-1;i>=0;i--)
{
nums1[i+n] = nums1[i];
}
int nums1Pointer = n;
int nums2Pointer = 0;
int index = 0;
while(nums1Pointer < m+n && nums2Pointer < n)
{
if(nums1[nums1Pointer] < nums2[nums2Pointer])
{
nums1[index++] = nums1[nums1Pointer++];
}
else
{
nums1[index++] = nums2[nums2Pointer++];
}
}
while(nums1Pointer < m+n)
{
nums1[index++] = nums1[nums1Pointer++];
}
while(nums2Pointer < n)
{
nums1[index++] = nums2[nums2Pointer++];
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: