[LeetCode] 面试题 10.01.合并排序的数组
2024-10-08 21:36:55
题目:
这道题有多种实现的思路,这里使用双指针结合数组有序的特点进行解决
思路:
m代表A初始时有效元素的个数,n代表B中元素的个数,那么n+m才是A的总长度
从A的最后一个位置开始,设为cur,分别从A和B有效元素中选取最大的一个,进行比较,将较大的放入cur,随之相应的cur--,较大元素所在数组的有效个数减1
注:在进行比较时,会出现A == B的情况,此时将等号归到A<B处,B中元素优先会使得逻辑更加简单
在最后会出现两种情况:
- B全部加入,A有剩余
这种情况下,不需再做修改,A总体已有序
- A全部加入,B有剩余
这种情况下,说明B剩下的全是小于A中现有元素,直接依次加入A中便可
代码:
class Solution {
public:
void merge(vector<int>& A, int m, vector<int>& B, int n) {
int cur = m+n-;
while(m> && n>){
if(A[m-]>B[n-]) A[cur--] = A[m-- -];
else A[cur--] = B[n-- -];
}
while(n>){
A[cur--] = B[n-- -];
}
}
};
最新文章
- Startup配置类 居然又是约定
- sys.stdout.write与sys.sterr.write(二)
- vi 卡住怎么办
- java中异常注意的细节1
- 无法定位程序输入点ucrtbase.
- 一个JS的日期格式化算法示例
- Xamarin最新crack 包含IOS
- Java导入证书失败Keystore was tampered with, or password was incorrect
- iOS程序员对算法的要求
- IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例
- POJ 1035 代码+具体的目光
- mybatis 一对一关联映射实例
- 带着新人看java虚拟机03
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165215
- excel上传下载
- css实现圆形倒计时效果
- C#序列化与反序列化。
- noip第12课资料
- Asp.Net 用户验证(自定义IPrincipal和IIdentity)
- CodeForces 572D Minimization(DP)
热门文章
- form提供的两种数据传输方式 get和post method=”post“和method=”get”
- RadixSort(基数排序)原理及C++代码实现
- android完整智能家居、备忘录、蓝牙配对、3D动画库、购物车页面、版本更新自动安装等源码
- [LC] 438. Find All Anagrams in a String
- idea,2018版破解方法
- 吴裕雄--天生自然python学习笔记:python用 Selenium 组件实现浏览器操作自动化
- OpenCVSharp介绍
- 解密优秀博士成长史 ——微软亚洲研究院首届博士生学术论坛Panel讨论经验总结
- leaflet本地加载arcgis切片
- [LC] 252. Meeting Rooms