您的位置:首页 > 其它

[88]Merge Sorted Array

2015-10-10 21:48 295 查看
【题目描述】

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 nums1and nums2 are m and n respectively.

【思路】

因为题目中讲到nums1中有足够的空间存储nums2中的元素,所以先将nums2中的元素赋值到nums1的元素后面,然后再利用sort函数对nums1中目前所有的元素排序一遍。

后来发现这个方法可能有点取巧,所以重新实现了一遍。

【代码】

class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
for(int i=m;i<n+m;i++)
{
nums1[i]=nums2[i-m];
}
sort(nums1.begin(),nums1.end());
}
};


class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int i,j;
i=m-1;
j=n-1;
while(i>=0&&j>=0){
if(nums1[i]>nums2[j]) nums1[i+j+1]=nums1[i--];
else nums1[i+j+1]=nums2[j--];
}
while(j>=0) nums1[j]=nums2[j--];
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: