问题:
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
代码:
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
vector<int>::const_iterator p = nums1.begin();
vector<int>::const_iterator q = nums2.begin();
vector<int> l;
for(int i=0;i<m;i++){
l.push_back(*p);
p++;
}
for(int i=0;i<n;i++){
l.push_back(*q);
q++;
}
int a = m+n;
for(int i=0;i<a;i++){
for(int j=0;j<a;j++){
if(l[j]>l[j+1])
int temp;
temp = l[j];
l[j] = l[j+1];
l[j+1] = temp;
}
}
nums1.clear();
for(int i=0;i<a;i++){
nums1.push_back(l[i]);
}
l.clear();
}
};
在这个问题中,给出了两个向量,首先用iterator从头开始将nums1和nums2一个个写入一个新的向量中,然后在这个新的向量之中运用冒泡排序,将这个向量中的元素按顺序排列好,最后,将其写入nums1,最后再将这个向量利用clear清除。