要求
合并后有序,并且去掉重复元素
思路
数组长度不一样时,需要考虑当其中一个数组遍历完时的情况。当其中一个数组遍历完,另一个数组剩的元组直接拷贝即可。如下图所示:


代码
while(1){
if(i>=aa_len&&j>=bb_len) break;
else if(i>=aa_len){
*cc = *(bb+j);
j++;
cc++;
}
else if(j>=bb_len){
*cc = *(aa+i);
i++;
cc++;
}
else {
if(*(aa+i)==*(bb+j)){
*cc = *(aa+i);
i++;
j++;
cc++;
total--;
}else if(*(aa+i)>=*(bb+j)){
*cc = *(bb+j);
j++;
cc++;
}else {
*cc = *(aa+i);
i++;
cc++;
}
}
}
运行结果

本文介绍了一种合并两个数组并去除重复元素的算法思路。当数组长度不同时,需处理一个数组遍历完的情况,直接拷贝剩余数组元素。通过比较元素大小或相等性进行合并,确保结果有序无重复。
579

被折叠的 条评论
为什么被折叠?



