C语言每日一题(22)合并两个有序数组
力扣网 88. 合并两个有序数组
题目描述
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。
示例 1:
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 输出:[1,2,2,3,5,6] 解释:需要合并 [1,2,3] 和 [2,5,6] 。 合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。
示例 2:
输入:nums1 = [1], m = 1, nums2 = [], n = 0 输出:[1] 解释:需要合并 [1] 和 [] 。 合并结果是 [1] 。
示例 3:
输入:nums1 = [0], m = 0, nums2 = [1], n = 1 输出:[1] 解释:需要合并的数组是 [] 和 [1] 。 合并结果是 [1] 。 注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。
思路分析
方法1
时间复杂度 O(m+n)
空间复制度 O(m+n)
这是最基本的思路,将两个数组从头遍历,分别比较大小,较小的值先放到一个新创建的数组里,比较完后可能会存在剩余的情况,再将剩余的值放入新数组,题目要求返回数组1,再将新数组的内容拷贝进数组1里即可
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){int s1=0;int s2=0;int num3[200]={0};//新数组int i=0;while(s1<m&&s2<n)//任何一个数组遍历完结束循环{if(nums1[s1]<nums2[s2])//较小值先放{num3[i++]=nums1[s1++];}else if(nums1[s1]==nums2[s2])//相等则一起放,任意规则{num3[i++]=nums1[s1++];num3[i++]=nums2[s2++];}else{num3[i++]=nums2[s2++];}}if(s1==m)//s1遍历完的情况下,s2还没有遍历完的情况下{while(s2<n){num3[i++]=nums2[s2++];}}if(s2==n)//s2遍历完的情况下,s1还没有遍历完{while(s1<m){num3[i++]=nums1[s1++];}}for(int j=0;j<nums1Size;j++)//将新数组拷贝到数组1里{nums1[j]=num3[j];}}
方法2
时间复杂度 O(m+n)
空间复杂度 O(1)
思路:从两个数组的末尾开始遍历,数组1从最后一个数开始向前遍历,较大值放到数组1的末尾,如果遍历完数组2还有剩余的话直接放入。
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){int s1=m-1;//数组1的末尾(最后一个数字)int s2=n-1;//数组2的末尾int index=m+n-1;//(数组1的末尾)while(s1>=0&&s2>=0){if(nums1[s1]>nums2[s2]){nums1[index--]=nums1[s1--];}else{nums1[index--]=nums2[s2--];}}while(s2>=0)//数组2还有剩余的情况{nums1[index--]=nums2[s2--];}}
相关文章:
C语言每日一题(22)合并两个有序数组
力扣网 88. 合并两个有序数组 题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意…...
C++学习day--24 推箱子游戏图像化开发
环境要求: 1、VS2015以上 2、成功安装并配置图形库 项目注意事项:代码复制好以后,把下面的字符集改为多字节字符集 第 1 节 项目需求 实现一款推箱子游戏,效果如下图所示 , 具体规则: 1. 箱子只能推动而不能拉动…...
YOLOv8中的After Fuse指的是什么?
Fuse是指模型的一些模块进行融合。常见的就是conv和bn层进行融合,在训练的时候模型是存在conv和bn的,但在推理的过程中,模型在初始化的时候会进行模型fuse,把其中的conv和bn进行融合,通过一些数学转换把bn层融合到conv里面,还有一些例如DBB,RepVGG等等模块支持融合的这些在fuse…...
R-FCN: Object Detection via Region-based Fully Convolutional Networks(2016.6)
文章目录 AbstractIntroduction当前最先进目标检测存在的问题针对上述问题,我们提出... Our approachOverviewBackbone architecturePosition-sensitive score maps & Position-sensitive RoI pooling Related WorkExperimentsConclusion 原文链接 源代码 Abstr…...
Linux服务器部署Spring Boot项目的一些shell命令脚本
1.启动jar包的命令(根据jar包数量创建,并指定相对应的jar包) nohup java -server -Xms64m -Xmx128m -jar 项目jar包的名称.jar --spring.profiles.activeprod > 记录jar包的日志.log 2>&1 &可以写在start.sh文件里(…...
Youtube DNN:Deep Neural Networks for YouTube Recommendations
1.介绍 本文主要解决的三个挑战: 大规模的推荐场景,能够支持分布式训练和提供有效率的服务。不断更新的新物料。稀疏的用户行为,包含大量的噪声。 2.推荐系统 文章包含推荐系统的两阶段模型:召回和排序。 召回网络根据用户的历…...
Python 入门基础知识点有哪些?
Python是一种高级的、解释性的、面向对象的、动态类型语言,它在机器学习、数据分析、Web开发、科学计算等领域都有广泛的应用。下面是Python入门基础知识点的详细介绍。 1、变量和数据类型 在Python中,可以使用变量来存储数据。Python的数据类型包括整…...
【每日一题】补档 CF487B. Strip | 数据结构杂烩 -> 单调队列 | 困难
题目内容 原题链接 给定一个长度为 n n n 的数组,将这个数组进行拆分成若干个连续子数组, 使得每个子数组的最大值减去最小值小于等于 s s s , 且每个子数组的长度大于等于 l e n len len 。 问最少可以拆分成多少个连续子数组࿰…...
向量数据库和普通关系型数据库的区别,LAXCUS支持哪种数据库?
这是一位Laxcus用户在后台的提问,贴出来供大家参考: 1. 向量数据库与传统的关系型数据库主要有以下几个区别: 数据类型:向量数据库专门用于存储和查询向量数据,而传统数据库可以存储各种类型的数据,如文本…...
操作系统 --- 存储器管理
一、简答题 1.存储器管理的基本任务,是为多道程序的并发执行提供良好的存储器环境。请问好的存储器环境”应包含哪几个方面? 答: 2.内存保护是否可以完全由软件实现?为什么? 答:内存保护的主要任务是确保每…...
Python selenium无界面headless
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 …...
JavaScript 中的负无穷大是什么?
在 JavaScript 中,负无穷大表示为 -Infinity。它是一个特殊的数值,用于表示比任何实数都要小的值。 负无穷大用于表示超出数值范围的情况,例如在进行数学计算时发生了溢出或出现了无法表示的结果。它可以通过将负无穷大赋值给变量或通过某些…...
2023年十大地推和网推拉新app推广接单平台,一手单渠道
做地推最重要的一定是找好项目,找好项目最关键的一定是地推app接任务平台,所以这十大靠谱的地推拉新接单平台,都是我们精心筛选的,2023年从事地推和网推拉新作业。 1:聚量推客 “聚量推客”汇聚了众多市场上有的和没有…...
mybatis-plus的进阶使用
文章目录 自定义xml的sql脚本配置mybaits的全局配置文件mybatis-plus优化,指定select数据库乐观锁mybatis-plus实现数据库乐观锁mybatis-plus实现逻辑删除 自定义xml的sql脚本 这里的使用和mybatis一样 编写mapper.xml文件 <?xml version"1.0" enc…...
centos安装vim编辑器
第一步检查centos的vim编辑器包是否完整 rpm -qa|grep vim //查看Vim编辑器需要安装的四个包是否完整 第二步:一般安装vim编辑器需要一下四个安装包,缺失了之后可对应下载 vim-minimal-7.4.160-2.el7.x86_64vim-common-7.4.160-4.el7.x86_64 v…...
PostgreSQL InvalidMessage Cache 同步机制
文章目录 背景InvalidMessages 基本类型InvalidMessages 数据结构概览共享内存 的 "ring-buffer" 结构Backend 本地的 InvalidMessages管理SharedInvalCatalogMsgSharedInvalCatcacheMsgSharedInvalRelcacheMsgSharedInvalSnapshotMsgSharedInvalSmgrMsgSharedInvalR…...
C#,数值计算——Globals的计算方法与源程序
1 文本格式 using System; using System.Text; namespace Legalsoft.Truffer { public static partial class Globals { //const int FLT_RADIX 2; //const int DBL_MANT_DIG 53; //const int INT_DIGITS 32; //const float FLT_…...
腾讯云香港服务器轻量24元一个月性能测试
腾讯云香港轻量应用服务器优惠价格24元一个月,一年288元,以前是30M峰值带宽,现在是20M峰值带宽,阿腾云atengyun.com分享腾讯云香港轻量应用服务器性能测评,包括香港轻量服务器配置价格表、CPU性能和CN2网络延迟测试&am…...
深度学习之基于YoloV8的行人跌倒目标检测系统
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、行人跌倒目标检测系统四. 总结 一项目简介 世界老龄化趋势日益严重,现代化的生活习惯又使得大多数老人独居,统计数据表…...
Seata入门系列【16】XA模式入门案例
1 前言 在之前,我们试过了AT、TCC 模式,Seata 还支持XA 模式。 2 XA 协议 XA协议由Tuxedo首先提出的,并交给X/Open组织,作为资源管理器(数据库)与事务管理器的接口标准。Oracle、Informix、DB2和Sybase等…...
OpenClaw技能扩展指南:为百川2-13B添加公众号发布模块
OpenClaw技能扩展指南:为百川2-13B添加公众号发布模块 1. 为什么需要公众号发布技能 上周我正忙着准备一篇技术分享文章,突然意识到一个痛点:每次写完Markdown文档后,手动复制到公众号编辑器、调整格式、上传封面、设置摘要的过…...
ollama-QwQ-32B微调实战:定制OpenClaw专属指令集
ollama-QwQ-32B微调实战:定制OpenClaw专属指令集 1. 为什么需要定制OpenClaw指令集 去年冬天,当我第一次用OpenClaw自动整理桌面文件时,发现它总是把"截图"和"截屏"两个文件夹混在一起。这让我意识到:通用大…...
如何用FCEUX重温经典游戏?全场景部署指南
如何用FCEUX重温经典游戏?全场景部署指南 【免费下载链接】fceux FCEUX, a NES Emulator 项目地址: https://gitcode.com/gh_mirrors/fc/fceux 为什么选择FCEUX模拟器?🎮 在众多NES模拟器中,FCEUX凭借三大核心优势脱颖而出…...
如何通过WebGLInput彻底解决Unity WebGL平台的输入法兼容性问题
如何通过WebGLInput彻底解决Unity WebGL平台的输入法兼容性问题 【免费下载链接】WebGLInput IME for Unity WebGL 项目地址: https://gitcode.com/gh_mirrors/we/WebGLInput 你是否曾尝试在Unity WebGL应用中实现中文输入,却发现输入法无法正常工作…...
GitHub Desktop中文汉化终极指南:三分钟解锁全中文Git操作体验
GitHub Desktop中文汉化终极指南:三分钟解锁全中文Git操作体验 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop的英文界面而烦恼吗&am…...
XML Notepad:Windows平台XML文档编辑与转换的完整解决方案
XML Notepad:Windows平台XML文档编辑与转换的完整解决方案 【免费下载链接】XmlNotepad XML Notepad provides a simple intuitive User Interface for browsing and editing XML documents. 项目地址: https://gitcode.com/gh_mirrors/xm/XmlNotepad XML No…...
【读书笔记】《逆风跑者》
《逆风跑者》| 长跑人的阿甘正传 如果你也曾困顿过,迷茫过,被生活压得喘不过气来,那么就拉过一把椅子静静地坐一会儿吧。听我说说这位无声跑者的事儿,和他一起不屈不挠地寂静奔跑一次。 📖 关于这本书 《逆风跑者》是…...
微信小程序身份证检测实战:从createVKSession版本兼容到真机调试全解析
1. 微信小程序身份证检测功能开发概述 最近在开发一个需要身份证识别功能的小程序时,遇到了一个让人头疼的问题:在开发者工具中运行正常,但真机调试时却报错"createVKSession:fail The current device does not support version v1&quo…...
3个智能化解决方案让科研工作者实现投稿管理效率革命:Elsevier Tracker无缝集成工具
3个智能化解决方案让科研工作者实现投稿管理效率革命:Elsevier Tracker无缝集成工具 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 行业现状分析 学术出版领域数字化转型过程中,科研工作者…...
【24年最新算法】首发CPO-XGBoost回归+交叉验证 基于冠豪猪优化算法-XGBoost多变量回归预测
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
