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

leetcode做题笔记88. 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

思路一:模拟题意

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){if(n == 0)return;for(int i = 0; i < m; i++){if(nums2[0] <= nums1[i]){int tmp = nums1[i];nums1[i] = nums2[0]; int j = 1;for(; j < nums2Size ; j++){if(nums2[j] < tmp) nums2[j - 1] = nums2[j];elsebreak;}nums2[j - 1] = tmp;} }for(int i = 0; i < n; i++){nums1[m + i] = nums2[i];}
}

分析:

本题判断nums2中数是否大于nums1中对应位置的数,若小于则插入nums1,当m=0时再将剩余的nums2中数放入nums1中,每次将nums2中首位插入nums1。

总结:

本题考察数组的应用,将判断条件nums2[0]<=nums1[i]理解好则可解决

http://www.lryc.cn/news/131128.html

相关文章:

  • stm32开关控制led灯泡(附Proteus电路图)
  • win10 wsl ubuntu 更换版本为18.04 apt换国内源Python换国内源;默认root
  • C++ Primer 第1章 开始
  • 【STM32 学习】电源解析(VCC、VDD、VREF+、VBAT)
  • C语言实例_解析GPS源数据
  • LVS+Keepalived
  • uni-app根据经纬度逆解析详细地址
  • 【数据结构】吃透单链表!!!(详细解析~)
  • Linux 安全技术和防火墙
  • Mac 开发 Tang Nano FPGA 指南(使用终端和使用 VS Code 和插件,适用所有 Gowin FPGA)
  • 基于深度学习的铁路异物侵限检测算法研究_整体认知感觉欠点意思,但是有一个新的变形卷积-Octave 卷积
  • Spring项目使用Redis限制用户登录失败的次数以及暂时锁定用户登录权限
  • 2023.8 - java - 变量类型
  • 【Kubernetes】Kubernetes的Pod控制器
  • Ubuntu20.04安装Nvidia显卡驱动教程
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR添加萤石云设备详细操作来啦!
  • AI 绘画Stable Diffusion 研究(十二)SD数字人制作工具SadTlaker插件安装教程
  • 数据结构——链表详解
  • (学习笔记-进程管理)什么是悲观锁、乐观锁?
  • actuator/prometheus使用pushgateway上传jvm监控数据
  • Linux设置临时目录路径的解决方案
  • 19-普通组件的注册使用
  • Java基础篇:抽象类与接口
  • 面对对象编程范式
  • “深度学习”学习日记:Tensorflow实现VGG每一个卷积层的可视化
  • 146. LRU 缓存
  • Unity框架学习--场景切换管理器
  • Kotlin Lambda和高阶函数
  • ELKstack-Elasticsearch配置与使用
  • Kotlin 基础教程二