题解 | #合并两个有序的数组#

合并两个有序的数组

http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int new_n = m+n-1;
从后往前放置数字,最大的放在最后面,依次往前
if(n==0) return;
if(m==0){
for(int a=0;a<n;a++){
A[a] = B[a];
}
return;
}
int i=m-1,j=n-1;
int flag=0;
while(i>=0&&j>=0){
if(A[i]>=B[j]){
A[new_n] = A[i];
new_n--;
i--;
}else{
A[new_n] = B[j];
new_n--;
j--;
}
if(i<0){
flag=1;
break;
}
if(j<0){
flag=2;
break;
}
}
if(flag==1){
for(j;j>=0;j--){
A[new_n] = B[j];
new_n--;
}
}
}
};

全部评论

相关推荐

焦虑中,不知道怎么办了。。。
西北上单:应该放俩项目合理一些 我是一个业务开发项目 一个AI项目和你这个写的亮点差不多
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务