您的位置:首页 > 其它

88. Merge Sorted Array

2016-11-08 23:35 183 查看
题目:

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

思路:

归并排序,由题目可知数组1的空间足够存储两个数组的元素,则利用倒叙比较的方式,由后向前比较,每次比较将较大的元素放到数组1中

代码:

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