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--];
}
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--];
}
相关文章推荐
- 88. Merge Sorted Array
- 88. Merge Sorted Array
- 88. Merge Sorted Array
- 88. Merge Sorted Array
- leetcode题解-88. Merge Sorted Array
- Leetcode: 88. Merge Sorted Array
- 88. Merge Sorted Array
- LeetCode | 88. Merge Sorted Array
- leetcode 88. Merge Sorted Array
- Leetcode 88. Merge Sorted Array
- LeetCode 88. Merge Sorted Array
- Easy-题目39:88. Merge Sorted Array
- Leetcode 88. Merge Sorted Array (Easy) (cpp)
- 88. Merge Sorted Array
- 88. Merge Sorted Array
- LeetCode-Array-88. Merge Sorted Array
- Leetcode 88. Merge Sorted Array
- 88. Merge Sorted Array
- leetcode --88. Merge Sorted Array
- [leetcode]88. Merge Sorted Array[facebook](9)