重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
样例
给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]
先上一个无脑的,可以AC
1 vector mergeSortedArray(vector &A, vector &B) {
2 // write your code here3 for(int i=0;i
其实这个题是面试场景出现的话,完全可以先弄一个暴力的出来,后面再慢慢优化,这也是一个思路的过程
下面这一个就是很常规的了,就是申请了一个新数组,空间复杂度高一些
1 vector mergeSortedArray(vector &A, vector &B) {
2 // write your code here 3 vector result(A.size()+B.size(), 0);
4 int i = 0, j = 0;
5 int k = 0;
6 while (i < A.size() && j < B.size())
7 {
8 if (A[i] > B[j])
9 {
10 result[k++] = B[j++];
11 }
12 else
13 {
14 result[k++] = A[i++];
15 }
16 }
17 while (i < A.size())
18 {
19 result[k++] = A[i++];
20 }
21 while (j < B.size())
22 {
23 result[k++] = B[j++];
24 }
25 return result;
26 }