文章目录
原题题目

代码实现(首刷自解)
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int nums1_sorted_pos = 0,nums2_sorted_pos = 0,total_sorted_pos = 0;
vector<int> tempnums1(nums1.begin(),nums1.begin()+m);
while(nums1_sorted_pos != m || nums2_sorted_pos != n)
{
if(nums1_sorted_pos == m) nums1[total_sorted_pos++] = nums2[nums2_sorted_pos++];
else if(nums2_sorted_pos == n) nums1[total_sorted_pos++] = tempnums1[nums1_sorted_pos++];
else
{
if(tempnums1[nums1_sorted_pos] <= nums2[nums2_sorted_pos])
nums1[total_sorted_pos++] = tempnums1[nums1_sorted_pos++];
else
nums1[total_sorted_pos++] = nums2[nums2_sorted_pos++];
}
}
}
};
还没有评论,来说两句吧...