当前位置: 首页 > news >正文

合并排序的数组

题目链接

合并排序的数组

题目描述

注意点

  • A的末端有足够的缓冲空间容纳B
  • A和B都是排序的

解答思路

  • 最初想到的是双指针,从小到大找到合并B时应该A相应位置应该插入的元素,因为在插入的过程中B的元素会替换A原有位置的元素,所以需要先将A中的元素赋值到C,再双指针根据B和C对应的元素值大小插入到A中
  • 参照题解,因为A的末端有足够的缓冲空间容纳B,所以可以使用逆向双指针,先把更大的元素插入到A中,就不需要额外的空间存储A中的元素了

代码

class Solution {public void merge(int[] A, int m, int[] B, int n) {int idxA = m - 1;int idxB = n - 1;while (idxA >= 0 || idxB >= 0) {if (idxA < 0) {A[idxA + idxB + 1] = B[idxB];idxB--;continue;}if (idxB < 0) {A[idxA + idxB + 1] = A[idxA];idxA--;continue;}if (A[idxA] > B[idxB]) {A[idxA + idxB + 1] = A[idxA];idxA--;} else {A[idxA + idxB + 1] = B[idxB];idxB--;}}}
}

关键点

  • 双指针的思想
http://www.lryc.cn/news/390522.html

相关文章:

  • js 复制文本带样式
  • 服务器之BIOS基础知识总结
  • FFmpeg 实现从摄像头获取流并通过RTMP推流
  • 学生管理系统
  • 【linux】网络基础(3)——tcp协议
  • [Day 21] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 使用ps给gif动图抠图
  • pmp顺利通关总结
  • 未来的钥匙在于过去:学历史的真正意义,震惊!历史竟然是偶然的?从历史中寻找未来的方向!
  • ES6自定义模块
  • Windows页面错误(Page Fault)写几种c++会导致,此问题的例子
  • AC7801时钟配置流程
  • 加密与安全_Java 加密体系 (JCA) 和 常用的开源密码库
  • 读书笔记-《Spring技术内幕》(三)MVC与Web环境
  • k8s及常用对象简介
  • HTTPS数字证书验证论述
  • 【高考志愿】地质资源与地质工程
  • 全网最佳硕士研究生复试简历模板
  • Rocky Linux 9 系统OpenSSH CVE-2024-6387 漏洞修复
  • Sping源码(九)—— Bean的初始化(非懒加载)—mergeBeanDefinitionPostProcessor
  • labview技巧——AMC框架安装
  • 解锁分布式云多集群统一监控的云上最佳实践
  • 学会拥抱Python六剑客,提高编程效率
  • mysql 根据当前时间筛选某个时间范围内的数据
  • Linux 常用指令详解
  • 【简单讲解下npm常用命令】
  • Header Location重定向机制解析与应用
  • 硅纪元AI应用推荐 | 国产创作引擎即梦AI助力创作者探索创作新境界
  • 使用TableGeneration生成已标注的表格数据用于表格识别
  • 赛目科技三度递表:净利率及资产回报率不断下滑,经营成本越来越高