题目:


这道题有多种实现的思路,这里使用双指针结合数组有序的特点进行解决

思路:

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-- -];
}
}
};

最新文章

  1. Startup配置类 居然又是约定
  2. sys.stdout.write与sys.sterr.write(二)
  3. vi 卡住怎么办
  4. java中异常注意的细节1
  5. 无法定位程序输入点ucrtbase.
  6. 一个JS的日期格式化算法示例
  7. Xamarin最新crack 包含IOS
  8. Java导入证书失败Keystore was tampered with, or password was incorrect
  9. iOS程序员对算法的要求
  10. IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例
  11. POJ 1035 代码+具体的目光
  12. mybatis 一对一关联映射实例
  13. 带着新人看java虚拟机03
  14. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165215
  15. excel上传下载
  16. css实现圆形倒计时效果
  17. C#序列化与反序列化。
  18. noip第12课资料
  19. Asp.Net 用户验证(自定义IPrincipal和IIdentity)
  20. CodeForces 572D Minimization(DP)

热门文章

  1. form提供的两种数据传输方式 get和post method=”post“和method=”get”
  2. RadixSort(基数排序)原理及C++代码实现
  3. android完整智能家居、备忘录、蓝牙配对、3D动画库、购物车页面、版本更新自动安装等源码
  4. [LC] 438. Find All Anagrams in a String
  5. idea,2018版破解方法
  6. 吴裕雄--天生自然python学习笔记:python用 Selenium 组件实现浏览器操作自动化
  7. OpenCVSharp介绍
  8. 解密优秀博士成长史 ——微软亚洲研究院首届博士生学术论坛Panel讨论经验总结
  9. leaflet本地加载arcgis切片
  10. [LC] 252. Meeting Rooms