【刷题之路】有序数组组合问题
来源:互联网 发布:手机壳效果图软件 编辑:程序博客网 时间:2024/06/10 01:18
有两个从小到大排序以后的数组A和B,其中A的末端有足够的缓冲空容纳B。请编写一个方法,将B合并入A并排序。
因为A末尾有足够空间,所以应从后往前遍历这样就不用开辟新的空间来存放数组。
首先比较AB最后一个数字,大的放入A最后一个位置,不断遍历。如果B遍历完了,直接返回A,如果A遍历完了,则将B按顺序放入A前面空出来的位置。
class Merge {
public:
int* mergeAB(int* A, int* B, int n, int m) {
// write code here
int right=m+n-1,i=n,j=m;
while(i>=0&&j>=0){
if(A[i-1]>B[j-1]){ //比较AB最后数字,大的放入A末尾,同时相应数组往前移一位继续比较
A[right]=A[i-1];
--i;
}
else{
A[right]=B[j-1];
--j;
}
--right;
}
while(j>=0){ //如果B遍历完了,直接返回A,如果B没有遍历完,则将B继续放入A中
A[right]=B[j];
--j;
--right;
}
return A;
}
};
- 【刷题之路】有序数组组合问题
- 有序数组的组合问题
- 【刷题之路】有序矩阵查找问题
- 将两个数组组合成有序数组
- 组合有序数组 循环删除数组元素
- 合并有序数组问题
- 有序数组合并问题
- 有序数组中位数问题
- 循环有序数组查找问题
- 有序数组求中位数问题
- 有序数组求中位数问题
- 有序数组旋转的问题
- 有序数组问题的思考
- 数组中的有序插入问题
- 有序组合
- 笔试题:写一个有序整数数组两两之和等于某个数所有组合
- 有序数组之二分查找
- 数组组合问题
- 在android中用NetworkImageView读取网络图片并通过ListView显示出来
- 剑指offer|从尾到头打印链表
- IOS NetworkExtension 框架使用笔记
- Android入门--Intent数据传递
- 影响蓝牙BLE设备功耗的几个因素
- 【刷题之路】有序数组组合问题
- LightOJ 1197 Help Hanzo(区间素数筛选)
- c 4.5 k-means 算法 机器学习
- Kylin, Mondrian, Saiku系统的整合
- LightOJ1336 Sigma Function(约数和为奇数的个数)
- 数位DP问题
- UVA 11827Maximum GCD
- LightOJ 1234Harmonic Number
- Android 中Timer和TimeTask完成定时任务