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

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&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意…...

C++学习day--24 推箱子游戏图像化开发

环境要求&#xff1a; 1、VS2015以上 2、成功安装并配置图形库 项目注意事项&#xff1a;代码复制好以后&#xff0c;把下面的字符集改为多字节字符集 第 1 节 项目需求 实现一款推箱子游戏&#xff0c;效果如下图所示 , 具体规则&#xff1a; 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当前最先进目标检测存在的问题针对上述问题&#xff0c;我们提出... Our approachOverviewBackbone architecturePosition-sensitive score maps & Position-sensitive RoI pooling Related WorkExperimentsConclusion 原文链接 源代码 Abstr…...

Linux服务器部署Spring Boot项目的一些shell命令脚本

1.启动jar包的命令&#xff08;根据jar包数量创建&#xff0c;并指定相对应的jar包&#xff09; nohup java -server -Xms64m -Xmx128m -jar 项目jar包的名称.jar --spring.profiles.activeprod > 记录jar包的日志.log 2>&1 &可以写在start.sh文件里&#xff08…...

Youtube DNN:Deep Neural Networks for YouTube Recommendations

1.介绍 本文主要解决的三个挑战&#xff1a; 大规模的推荐场景&#xff0c;能够支持分布式训练和提供有效率的服务。不断更新的新物料。稀疏的用户行为&#xff0c;包含大量的噪声。 2.推荐系统 文章包含推荐系统的两阶段模型&#xff1a;召回和排序。 召回网络根据用户的历…...

Python 入门基础知识点有哪些?

Python是一种高级的、解释性的、面向对象的、动态类型语言&#xff0c;它在机器学习、数据分析、Web开发、科学计算等领域都有广泛的应用。下面是Python入门基础知识点的详细介绍。 1、变量和数据类型 在Python中&#xff0c;可以使用变量来存储数据。Python的数据类型包括整…...

【每日一题】补档 CF487B. Strip | 数据结构杂烩 -> 单调队列 | 困难

题目内容 原题链接 给定一个长度为 n n n 的数组&#xff0c;将这个数组进行拆分成若干个连续子数组&#xff0c; 使得每个子数组的最大值减去最小值小于等于 s s s &#xff0c; 且每个子数组的长度大于等于 l e n len len 。 问最少可以拆分成多少个连续子数组&#xff0…...

向量数据库和普通关系型数据库的区别,LAXCUS支持哪种数据库?

这是一位Laxcus用户在后台的提问&#xff0c;贴出来供大家参考&#xff1a; 1. 向量数据库与传统的关系型数据库主要有以下几个区别&#xff1a; 数据类型&#xff1a;向量数据库专门用于存储和查询向量数据&#xff0c;而传统数据库可以存储各种类型的数据&#xff0c;如文本…...

操作系统 --- 存储器管理

一、简答题 1.存储器管理的基本任务&#xff0c;是为多道程序的并发执行提供良好的存储器环境。请问好的存储器环境”应包含哪几个方面&#xff1f; 答&#xff1a; 2.内存保护是否可以完全由软件实现&#xff1f;为什么&#xff1f; 答&#xff1a;内存保护的主要任务是确保每…...

Python selenium无界面headless

视频版教程&#xff1a;一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium Chrome-headless 模式&#xff0c; Google 针对 Chrome 浏览器 59版 新增加的一种模式&#xff0c;可以让你不打开UI界面的情况下使用 Chrome 浏览器&#xff0c;所以运行效果与 …...

JavaScript 中的负无穷大是什么?

在 JavaScript 中&#xff0c;负无穷大表示为 -Infinity。它是一个特殊的数值&#xff0c;用于表示比任何实数都要小的值。 负无穷大用于表示超出数值范围的情况&#xff0c;例如在进行数学计算时发生了溢出或出现了无法表示的结果。它可以通过将负无穷大赋值给变量或通过某些…...

2023年十大地推和网推拉新app推广接单平台,一手单渠道

做地推最重要的一定是找好项目&#xff0c;找好项目最关键的一定是地推app接任务平台&#xff0c;所以这十大靠谱的地推拉新接单平台&#xff0c;都是我们精心筛选的&#xff0c;2023年从事地推和网推拉新作业。 1&#xff1a;聚量推客 “聚量推客”汇聚了众多市场上有的和没有…...

mybatis-plus的进阶使用

文章目录 自定义xml的sql脚本配置mybaits的全局配置文件mybatis-plus优化&#xff0c;指定select数据库乐观锁mybatis-plus实现数据库乐观锁mybatis-plus实现逻辑删除 自定义xml的sql脚本 这里的使用和mybatis一样 编写mapper.xml文件 <?xml version"1.0" enc…...

centos安装vim编辑器

第一步检查centos的vim编辑器包是否完整 rpm -qa|grep vim //查看Vim编辑器需要安装的四个包是否完整 第二步&#xff1a;一般安装vim编辑器需要一下四个安装包&#xff0c;缺失了之后可对应下载 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元一个月&#xff0c;一年288元&#xff0c;以前是30M峰值带宽&#xff0c;现在是20M峰值带宽&#xff0c;阿腾云atengyun.com分享腾讯云香港轻量应用服务器性能测评&#xff0c;包括香港轻量服务器配置价格表、CPU性能和CN2网络延迟测试&am…...

深度学习之基于YoloV8的行人跌倒目标检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、行人跌倒目标检测系统四. 总结 一项目简介 世界老龄化趋势日益严重&#xff0c;现代化的生活习惯又使得大多数老人独居&#xff0c;统计数据表…...

Seata入门系列【16】XA模式入门案例

1 前言 在之前&#xff0c;我们试过了AT、TCC 模式&#xff0c;Seata 还支持XA 模式。 2 XA 协议 XA协议由Tuxedo首先提出的&#xff0c;并交给X/Open组织&#xff0c;作为资源管理器&#xff08;数据库&#xff09;与事务管理器的接口标准。Oracle、Informix、DB2和Sybase等…...

终极Element Plus Admin指南:快速构建企业级后台管理系统的完整解决方案

终极Element Plus Admin指南&#xff1a;快速构建企业级后台管理系统的完整解决方案 【免费下载链接】element-plus-admin 基于vitetselementPlus 项目地址: https://gitcode.com/gh_mirrors/el/element-plus-admin 你是否正在寻找一个能够快速搭建企业级后台管理系统的…...

哔哩下载姬DownKyi:你的B站视频下载与处理终极指南

哔哩下载姬DownKyi&#xff1a;你的B站视频下载与处理终极指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff…...

2026一氧化碳监测仪选型避坑指南:康高特等厂家深度对比评测

引言一氧化碳&#xff08;CO&#xff09;&#xff0c;这种无色、无味、无刺激性的气体&#xff0c;因其与血红蛋白的极高亲和力&#xff0c;在工业生产、公共安全及环境监测领域构成了严峻的“隐形威胁”。随着全球工业化进程的加速和安全生产标准的日益提升&#xff0c;对一氧…...

Fast-GitHub:国内开发者必备的GitHub下载加速终极方案

Fast-GitHub&#xff1a;国内开发者必备的GitHub下载加速终极方案 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 对于身处国内的开…...

诛仙手游多开最多几开?用什么云手机比较好?

很多喜欢玩诛仙手游的朋友们都喜欢多开&#xff0c;但是今天小编告诉你们多开也不能开太多哦&#xff0c;要选择合适的云手机多开才行&#xff0c;不然同一个ip多开很容易封号&#xff0c;今天小宝就来给大家分析诛仙多开几个比较合适&#xff0c;以及用什么云手机多开不容易封…...

GPT-4 Turbo访问权、优先响应、高级数据分析——ChatGPT Plus五大隐藏权益深度拆解,92%用户根本没用全

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT Plus订阅值不值得买 ChatGPT Plus 提供每月 $20 的固定订阅服务&#xff0c;主打 GPT-4 模型访问、优先响应队列、文件上传解析&#xff08;PDF/CSV/TXT 等&#xff09;及自定义 GPTs 功能。是…...

FPG财盛国际:投资者教育生态的全面布局

FPG财盛国际&#xff1a;投资者教育生态的全面布局金融服务行业的复杂性决定了平台需要在多个维度上同时具备较高的水准。FPG财盛国际经过多年的发展&#xff0c;已经在合规、技术、服务、教育等方面形成了一套相互支撑的体系。本文从评测视角出发&#xff0c;对其综合实力进行…...

氢燃料电池混合动力能量管理与动力控制【附仿真】

✨ 长期致力于氢燃料电池、能量管理、等效氢耗、变换器、协同控制、永磁同步电机、滑模自抗扰研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;等效氢耗…...

AI提示词工程:用Claude+Cursor构建高效创意工作流

1. 项目概述&#xff1a;当创意遇上AI&#xff0c;一个提示词库如何改变工作流如果你是一位创意工作者——无论是设计师、插画师、文案策划还是视频创作者&#xff0c;最近几个月&#xff0c;你的工作流里可能多了一个新伙伴&#xff1a;Claude。这个由Anthropic推出的AI助手&a…...

QtScrcpy安卓投屏终极指南:从零基础到精通应用的完整教程

QtScrcpy安卓投屏终极指南&#xff1a;从零基础到精通应用的完整教程 【免费下载链接】QtScrcpy Android实时投屏软件&#xff0c;此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrc…...