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

Leetcode. 88合并两个有序数组

合并两个有序数组

文章目录

  • 归并
    • 思路二

归并

核心思路: 依次比较,取较小值放入新数组中
i 遍历nums1 , j 遍历nums2 ,取较小值放入nums3中
那如果nums[i] 和nums[j]中相等,随便放一个到nums3

在这里插入图片描述

在这里插入图片描述

那如果nums[i] 和nums[j]中相等,随便放一个到nums3

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

此时 nums1 中的元素已经走完了,那么直接把 nums2 中剩下的元素拿到 nums3 中去,
因为nums2 是有序数组 ,所以不需要考虑 nums2剩下的元素比nums3小
在这里插入图片描述

在这里插入图片描述

这总方法最大的问题就是新开辟了一个数组 如果题目要求空间复杂度为O(1) ,这种方法就不管用了

思路二

归并依次比较取较小值 ,但是思路二是依次比较取较大值
思路二和归并大体上相似 ,

思路二整体思路:
i 指向nums1最后一个有效元素 ,向前遍历 ,
j 指向nums2最后一个有效元素 ,向前遍历
dst指向nums1 的最后一个元素 ,也是向前遍历
j 指向的元素如果大于 i 指向的元素,那么就把 j 指向的元素放入 dst 指向的位置中去

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

当j 向前遍历完nums2时 ,我们直接让它结束就行了

但是还需要多考虑一种情况

在这里插入图片描述

当nums1中的每一个元素都比nums2中的每一个元素大 ,nums1 一定会先遍历完 ,这时候就需要将nums2 的每一个元素提前放入nums1中
在这里插入图片描述

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{int i = m -1 ;int j = n- 1 ;int dst = m + n -1 ;while( i >=0 && j >= 0){//nums2先走完 , j < 0 if( nums1[i]>= nums2[j])  //取较大值{nums1[dst] = nums1[i];dst-- ;i--;}else{nums1[dst]=nums2[j];dst--;j--;}}// nums1 先走完 , i < 0 while( j>=0 ){nums1[dst] = nums2[j];j -- ;dst -- ;}
}

如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!

相关文章:

Leetcode. 88合并两个有序数组

合并两个有序数组 文章目录归并思路二归并 核心思路&#xff1a; 依次比较&#xff0c;取较小值放入新数组中 i 遍历nums1 &#xff0c; j 遍历nums2 &#xff0c;取较小值放入nums3中 那如果nums[i] 和nums[j]中相等&#xff0c;随便放一个到nums3 那如果nums[i] 和nums[j]中相…...

【数据库】数据库查询(进阶命令详解)

目录 1.聚合查询 1.1聚合函数 COUNT函数 SUM函数 AVG函数 MAX函数 MIN函数 1.2GROUP BY子句 1.3HAVING 2.联合查询 2.1内连接 2.2外连接 2.3自连接 2.4子查询 3.合并查询 写在前面&#xff1a; 文章截图均是每个代码显示的图。数据库对代码大小写不敏感&am…...

参数缺省和函数重载讲解

一路风雨兼程磨砺意志&#xff0c;三载苦乐同享铸就辉煌 目录 1.参数缺省的概念 2.参数缺省的用法 3.缺省参数分类 3.1.全缺省参数 3.2.半缺省参数 4.函数重载的概念 5.函数重载的用法 6.函数重载的原理 1.参数缺省的概念 一般情况下&#xff0c;函数调用时的实参个数应…...

关于召开2023第八届国际发酵培养基应用发展技术论坛的通知

生物发酵培养基是影响产业技术水平、环境友好程度的重要影响因素&#xff0c;为进一步实现生物发酵培养基的稳定可控、高效生产以及绿色安全&#xff0c;进一步推动生物技术的创新升级、绿色低碳循环生产&#xff0c;需要加强跨界联合&#xff0c;集中优势力量&#xff0c;突破…...

Java之深度优先(DFS)和广度优先(BFS)及相关题目

目录 一.深度优先遍历和广度优先遍历 1.深度优先遍历 2.广度优先遍历 二.图像渲染 1.题目描述 2.问题分析 3代码实现 1.广度优先遍历 2.深度优先遍历 三.岛屿的最大面积 1.题目描述 2.问题分析 3代码实现 1.广度优先遍历 2.深度优先遍历 四.岛屿的周长 1.题目描…...

【链表OJ题(四)】反转链表

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录链表OJ题(四)1. 反转…...

java ArrayList源码分析(深度讲解)

ArrayList类的底层实现ArrayList类的断点调试空参构造的分步骤演示&#xff08;重要&#xff09;带参构造的分步骤演示一、前言大家好&#xff0c;本篇博文是对单列集合List的实现类ArrayList的内容补充。之前在List集合的万字详解篇&#xff0c;我们只是拿ArrayList演示了List…...

【网络编程】零基础到精通——NIO基础三大组件和ByteBuffer

一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream&#xff0c;它就是读写数据的双向通道&#xff0c;可以从 channel 将数据读入 buffer&#xff0c;也可以将 buffer 的数据写入 channel&#xff0c;而之前的 st…...

操作系统 - 1. 绪论

目录操作系统基本概念概念特征功能操作系统的分类与发展手工操作单道批处理系统多道批处理系统分时系统实时系统操作系统的运行环境CPU 运行模式中断和异常的处理系统调用程序的链接与装入程序运行时内存映像和地址空间操作系统的体系结构操作系统的引导操作系统基本概念 概念…...

详谈parameterType与resultType的用法

resultMap 表示查询结果集与java对象之间的一种关系&#xff0c;处理查询结果集&#xff0c;映射到java对象。 resultMap 是一种“查询结果集---Bean对象”属性名称映射关系&#xff0c;使用resultMap关系可将将查询结果集中的列一一映射到bean对象的各个属性&#…...

【Linux】进程概念、fork() 函数 (干货满满)

文章目录&#x1f4d5; 前言&#x1f4d5; 进程概念&#x1f4d5; Linux下查看进程的两种方法方法一方法二&#x1f4d5; pid() 、ppid() 函数&#x1f4d5; fork() 函数、父子进程初识再理解&#x1f4d5; fork做了什么&#x1f4d5; 如何理解 fork 有两个返回值&#x1f4d5;…...

【动态规划】最长上升子序列、最大子数组和题解及代码实现

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…...

Ajax进阶篇02---跨域与JSONP

前言❤️ 不管前方的路多么崎岖不平&#xff0c;只要走的方向正确&#xff0c;都比站在原地更接近幸福 ❤️Ajax进阶篇02---跨域与JSONP一、Ajax进阶篇02---跨域与JSONP&#xff08;1&#xff09;同源策略1.1 什么是同源1.2 什么是同源策略&#xff08;2&#xff09;跨域2.1 什…...

C 语言编程 — 线程池设计与实现

目录 文章目录目录线程池&#xff08;Thread Pool&#xff09;tiny-threadpool数据结构设计Task / JobTask / Job QueueWorker / ThreadThread Pool ManagerPublic APIsPrivate Functions运行示例线程池&#xff08;Thread Pool&#xff09; 线程池&#xff08;Thread Pool&am…...

并发编程要点

Java并发编程中的三大特性分别是原子性、可见性和有序性&#xff0c;它们分别靠以下机制实现&#xff1a; 原子性&#xff1a;原子性指的是对于一个操作&#xff0c;要么全部执行&#xff0c;要么全部不执行。Java提供了一些原子性操作&#xff0c;例如AtomicInteger等&#xf…...

HDFS黑名单退役服务器

黑名单&#xff1a;表示在黑名单的主机IP地址不可以&#xff0c;用来存储数据。 企业中&#xff1a;配置黑名单&#xff0c;用来退役服务器。 黑名单配置步骤如下&#xff1a; 1&#xff09;编辑/opt/module/hadoop-3.1.3/etc/hadoop目录下的blacklist文件 添加如下主机名称&…...

基于stm32智能语音电梯消毒系统

这次来分享个最近做的项目&#xff0c;stm32智能语音电梯消毒系统功能说明&#xff1a;在电梯&#xff0c;房间&#xff0c;客道区域内&#xff0c;检测到人&#xff0c;则执行相关动作&#xff01;例如继电器开关灯&#xff0c;喷洒酒精等行为。手机app/微信小程序可以控制需要…...

FreeRTOS系列第1篇---为什么选择FreeRTOS?

1.为什么学习RTOS&#xff1f; 作为基于ARM7、Cortex-M3硬件开发的嵌入式工程师&#xff0c;我一直反对使用RTOS。不仅因为不恰当的使用RTOS会给项目带来额外的稳定性风险&#xff0c;更重要的是我认为绝大多数基于ARM7、Cortex-M3硬件的项目&#xff0c;还没复杂到使用RTOS的地…...

基于.NET Core内置浏览器窗体应用程序界面框架

更多开源项目请查看&#xff1a;一个专注推荐.Net开源项目的榜单 平常我们在做项目过程中&#xff0c;桌面软件具备操作高效、利用本地计算机做一些复杂运算、或者设定快捷操作等优势&#xff0c;但是桌面软件也有很多缺点&#xff0c;比如升级问题、系统兼容问题、系统bug排查…...

【数据结构初阶】一文带你学会归并排序(递归非递归)

目录 前言 递归实现 代码实现 非递归实现 代码实现 总结 前言 归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效的排序算法。该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。 作为一种典型的分而治之思想…...

Simulink壁咚(一)——What and How

目录 一、前言 二、Simulink 知多少 三、滤波算法 四、Model Verification 五、Model Coverage 六、Simulink测试实例 七、Simulink Test 八、Test Manager 九、Test Harness 十、 学习 一、前言 Simulink从2017b以后更加工程化和实用化&#xff0c;基于MBD的功能日趋…...

【PyTorch】Pytorch基础第0章

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 这是目录PyTorch的简介PyTorch 构建深度学习模型的步骤搭建pytorch使用环境PyTorch的简介 PyTorch 是一个开源的机器学习框架&#xff0c;由 Facebook 的人工智能研究院&#xff08;…...

Android学习总结

积累熟练掌握 Java 语言&#xff0c;面向对象分析设计能力&#xff0c;反射原理&#xff0c;自定义注解及泛型&#xff0c;多次采用设计模式重构公司项目&#xff1b;熟练掌握 IVM 原理&#xff0c;反射&#xff0c;动态代理以及对 ClassLoader 热修复有比较深的理解&#xff1…...

虚拟机ubuntu安装samba服务

安装samba apt-get install samba 新建一个共享目录 mkdir /home/l/work chmod 777 /home/l/work 配置服务 配置 /etc/samba/smb.confsudo smbpasswd -a l(添加用户名名称) 防火墙关闭 Ubuntu中 我们使用命令查看当前防火墙状态; sudo ufw status inactive状态是防火墙关闭…...

开发板中的内存压力测试,你了解多少?

1. 测试目的内存压力测试的目的是评估开发板中的内存子系统性能和稳定性&#xff0c;以确保它能够满足特定的应用需求。开发板通常用于嵌入式系统、物联网设备、嵌入式智能家居等场景&#xff0c;这些场景对内存的要求通常比较高。其内存压力测试的主要目的有&#xff1a;1.对确…...

MATLAB | 这些花里胡哨的热图怎么画

好早之前写过一个绘制相关系数矩阵的代码&#xff0c;但是会自动求相关系数&#xff0c;而且画出来的热图只能是方形&#xff0c;这里写一款允许nan值出现&#xff0c;任意形状的热图绘制代码&#xff0c;绘制效果如下&#xff1a; 如遇到bug请后台提出&#xff0c;并去gitee下…...

Java开发的一些编码建议

1、无论是类、方法、字段、变量&#xff0c;尽可能的限制他们的作用范围&#xff0c;可以避免出现不必要的错误&#xff1b;同时虚拟机也能有更大的优化空间。 2、错误越早发现越好&#xff0c;编译时发生错误比在运行时发生错误好。而且编译时错误能更好的定位问题所在。 这…...

【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.59】引入ASPP模块

前言作为当前先进的深度学习目标检测算法YOLOv8&#xff0c;已经集合了大量的trick&#xff0c;但是还是有提高和改进的空间&#xff0c;针对具体应用场景下的检测难点&#xff0c;可以不同的改进方法。此后的系列文章&#xff0c;将重点对YOLOv8的如何改进进行详细的介绍&…...

C++STL set/multiset容器 构造和赋值 大小和交换 插入和删除 查找和统计

文章目录set/multiset容器1 set容器 基本概念2 set容器 构造和赋值3 set容器 大小和交换4 set容器 插入和删除5 set容器 查找和统计set/multiset容器 1 set容器 基本概念 简介&#xff1a; 所有元素都会在插入时会被自动排序&#xff0c;例如&#xff0c;在set容器放入元素1、…...

产品研发项目进度管理软件工具有哪些推荐?整理10款最佳进度管理软件

项目进度管理是确保项目按时完成的关键过程&#xff0c;使用合适的项目进度管理工具能确保帮助项目管理者实时了解和控制项目的进展情况&#xff0c;及时发现和解决问题&#xff0c;减少项目风险&#xff0c;提高项目效率和管理水平。这里将整理出国内外最受欢迎的10款项目进度…...

杭州学网站建设/seo怎么做?

整体目标 在这一篇中&#xff0c;我们将使用Jenkins在此基础上构建一条完整的持续交付流水线&#xff0c;并且让团队不同成员能够基于该流水线展开基本的协作。开发&#xff1a; 持续提交代码并能够通过持续集成&#xff08;CI&#xff09;过程快速获取反馈&#xff0c;在通过C…...

奉贤网站建设公司/公司品牌宣传

一、百度上输入百度地图API 点击进入 二、下拉页面到底部 点击地图快速生成工具&#xff0c;进去 四、当前城市下面的框里输入你想定位的地点&#xff0c;再点击查找 五、下拉网页&#xff0c;网页中间看到生成代码按钮点击&#xff0c;就能看到生成的代码块 &#xff08;1&…...

南通建设企业网站/2021百度热搜年度榜

在现实生活中每个人去申请贷款&#xff0c;批下来的额度以及利息是不一样的&#xff0c;这样就有许多人觉得郁闷&#xff0c;为什么会每个人的差距这么大。其实&#xff0c;我们应该想一想自己的征信情况&#xff0c;负债情况&#xff0c;工作情况等是否好&#xff0c;是否符合…...

三木做网站/深圳互联网公司排行榜

欢迎访问XYNUOJ 1080: 习题5-7 求和 时间限制: 1 Sec 内存限制: 12 MB提交: 62 解决: 57[提交][状态][讨论版][Edit] [TestData]题目描述 求如下式子的和 请将结果定义为double类型。 注意求平方&#xff0c;不要用C数学库中提供的函数pow。 输入 无输出 小数点后保留6位小数…...

淘宝做轮播广告哪个网站好/市场推广怎么做

Swift中的注释 使用"// MARK:- 注释内容",对属性或方法进行注释 使用"///注释内容"对属性或方法提供调用说明的注释 使用extension对同一个类中的相关方法进行划分. extension类似于OC中的category,也是只能扩充方法,不能扩充属性 使用代码添加UITableView…...

旅游网站的建设方案/首页关键词优化价格

1.VLAN规划。 通常&#xff0c;不同的部门规划不同的vlan&#xff0c;如上图PC1和PC2属于同一个VLAN&#xff0c;PC3和打印机属于同一VLAN下&#xff1a; 部门VLANPC1 、PC210PC3 &#xff0c;打印机20 交换机上创建vlan&#xff0c;主机互联的接口配置为access接口&#xff…...