程序填空题:合并两个排序数组
合并两个排序的整数数组A和B变成一个新的数组。例如,给出A={1,2,3,4},B={2,4,5,6},则合并后的数组为 {1,2,2,3,4,4,5,6}。
```c++
#include
#include
#include
using namespace std;
class Solution {
public:
/**
* @param A and B: sorted integer array A and B.
* @return: A new sorted integer array
*/
vector mergeSortedArray(vector &A, vector &B) {
vector result;
int lena = A.size();
int lenb = B.size();
int ia = 0, ib = 0;
while (ia < lena && ib < lenb)
{
int val_a = A[ia];
int val_b = B[ib];
int val;
if (val_a <= val_b) {val = val_a; ia++;}
else {val = val_b; ib++;}
@@[result.push_back(val)](4);
}
while (ia < lena)
{
result.push_back(A[ia]);
@@[ia++](3);
}
while (@@[ib < lenb](3))
{
result.push_back(B[ib]);
ib++;
}
return result;
}
};
```
答案:
第1空:result.push_back(val)
第2空:ia++
第3空:ib < lenb
```c++
#include
#include
#include
using namespace std;
class Solution {
public:
/**
* @param A and B: sorted integer array A and B.
* @return: A new sorted integer array
*/
vector
vector
int lena = A.size();
int lenb = B.size();
int ia = 0, ib = 0;
while (ia < lena && ib < lenb)
{
int val_a = A[ia];
int val_b = B[ib];
int val;
if (val_a <= val_b) {val = val_a; ia++;}
else {val = val_b; ib++;}
@@[result.push_back(val)](4);
}
while (ia < lena)
{
result.push_back(A[ia]);
@@[ia++](3);
}
while (@@[ib < lenb](3))
{
result.push_back(B[ib]);
ib++;
}
return result;
}
};
```
答案:
第1空:result.push_back(val)
第2空:ia++
第3空:ib < lenb