LeetCode:88. 合并两个有序数组

news2024/10/6 16:25:57

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

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

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

88. 合并两个有序数组 - 力扣(LeetCode)

// 进阶:你可以设计实现一个时间复杂度为 O(m + n) 的算法解决此问题吗?
class Solution {
public:
    // 方法一
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        for(int i=0;i<n;i++) {
            nums1[m+i] = nums2[i];
        }
        sort(nums1.begin(), nums1.end());
    }*


    // 方法二:双指针
    void merge(vector<int>& nums1,int m,vector<int>& nums2,int n) {
        int idx1=0,idx2=0;
        int sorted[m+n];
        int cur;
        while(idx1 < m || idx2 < n) {
           if(idx1 == m) cur = nums2[idx2++];
           else if(idx2 == n) cur = nums1[idx1++];
           else if(nums1[idx1] < nums2[idx2]) cur = nums1[idx1++]; 
           else cur = nums2[idx2++];
           sorted[idx1+idx2-1] =cur;
        }
        for(int i=0;i!=m+n;i++) {
            nums1[i] = sorted[i];
        }
    }

    // 方法三:逆向双指针
    void merge(vector<int>& nums1,int m,vector<int>& nums2,int n) {
        int p1 = m-1,p2 = n-1;
        int tail = m + n - 1;
        int cur;
        while(p1 >= 0 || p2 >= 0) {
            if(p1 == -1) cur = nums2[p2--];
            else if(p2 == -1) cur = nums1[p1--];
            else if(nums1[p1] > nums2[p2]) cur = nums1[p1--];
            else cur = nums2[p2--];
            nums1[tail--] = cur;
        }
    }
};

 方法三:逆向双指针

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1003397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习】实验09 使用Keras完成线性回归

文章目录 使用Keras完成线性回归1. 导入Keras库2. 创建数据集3. 划分数据集4. 构造神经网络模型5. 训练模型6. 测试模型7. 分析模型 附&#xff1a;系列文章 使用Keras完成线性回归 Keras是一款基于Python的深度学习框架&#xff0c;以Tensorflow、Theano和CNTK作为后端&#…

AlwaysOn-关于读写分离的误区(一)

前言 很多人认为AlwaysOn在同步提交模式下数据是实时同步的&#xff0c;也就是说在主副本写入数据后可以在辅助副本立即查询到。因此期望实现一个彻底的读写分离策略&#xff0c;即所有的写语句在主副本上&#xff0c;所有的只读语句分离到辅助副本上。这是一个认知误区&#x…

多要素气象站:推动气象监测进入智能化新时代

一、多要素气象站概述 多要素气象站是一种集成了多种气象监测要素的自动化气象站&#xff0c;可实现对温度、湿度、风速、风向、气压、太阳辐射等多项气象参数的实时监测。相较于传统气象站&#xff0c;多要素气象站体积更小、能耗更低&#xff0c;且具备更高的测量精度和更广…

高精度加法[大整数运算]

这里只有大整数运算,浮点数相对来说很少使用到 前言 如果使用C内置的类型来存储大整数(位数有几万位),是会溢出的,得不到正确的值,即使是long long int类型的范围也只是[-9*10^19,9*10^19](无符号是[0,10^20]),所能存储的最大数字也就20位,所以需要高精度算法,高精度加法具体…

人脸签到系统 pyQT+数据库+深度学习

一、简介 人脸签到系统是一种基于人脸识别技术的自动签到和认证系统。它利用计算机视觉和深度学习算法来检测、识别和验证个体的面部特征&#xff0c;以确定其身份并记录其出现的时间。这个系统通常用于各种场景&#xff0c;包括企业、学校、会议、活动和公共交通等&#xff0c…

海格里斯HEGERLS托盘式四向穿梭车系统核心技术有哪些?

四向穿梭车立体仓库是常见的自动化立体库解决方案&#xff0c;可以应用在不规则、异型、长宽比较大或者少品种大批量、多品种大批量的仓库。其核心设备四向穿梭车克服了环形穿梭车的缺点&#xff0c;具有很高的灵活性和柔性。对于大型的立体库系统&#xff0c;四向穿梭车具有很…

2023最新计算机大数据毕业设计选题推荐100例

文章目录 0 前言1 如何选题1.1 选题技巧&#xff1a;如何避坑(重中之重)1.2 为什么这么说呢&#xff1f;1.3 难度把控1.4 题目名称1.5 最后 2 大数据 - 选题推荐2.1 大数据挖掘类2.2 大数据处理、云计算、区块链 毕设选题2.3 大数据安全类2.4 python大数据 游戏设计、动画设计类…

人工智能基础-趋势-架构

在过去的几周里&#xff0c;我花了一些时间来了解生成式人工智能基础设施的前景。在这篇文章中&#xff0c;我的目标是清晰概述关键组成部分、新兴趋势&#xff0c;并重点介绍推动创新的早期行业参与者。我将解释基础模型、计算、框架、计算、编排和矢量数据库、微调、标签、合…

HTTPS原理(证书验证+数据传输)

HTTPS协议相关的概念有SSL、非对称加密、CA证书等 为什么用了HTTPS就是安全的&#xff1f;HTTPS底层原理如何实现&#xff1f;用了HTTPS就一定安全吗&#xff1f; HTTPS实现原理 HTTPS在内容传输上的加密使用的是对称加密&#xff0c;证书验证阶段使用非对称加密 中间人攻…

无涯教程-JavaScript - INTRATE函数

描述 INTRATE函数返回完全投资证券的利率。 语法 INTRATE (settlement, maturity, investment, redemption, [basis])争论 Argument描述Required/OptionalSettlement 证券的结算日期。 证券结算日期是指在发行日期之后将证券交易给买方的日期。 RequiredMaturity 证券的到期…

innovus:如何设置clock cell list(icg logic_cells buffer inverter)

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 set_ccopt_property inverter_cells [list CKINV*LVT] set_ccopt_property buffer_cells [list CKBUF*LVT] set_ccopt_property clock_gating_cells [list CLKNQ*LVT set_cc…

数据结构与算法(一)数组的相关概念和底层java实现

一、前言 从今天开始&#xff0c;笔者也开始从0学习数据结构和算法&#xff0c;但是因为这次学习比较捉急&#xff0c;所以记录的内容并不会过于详细&#xff0c;会从基础和底层代码实现以及力扣相关题目去写相关的文章&#xff0c;对于详细的概念并不会过多讲解 二、数组基础…

数字化互联网数字孪生:重塑未来的创新思维

数字孪生是当今数字化互联网时代的一个引人注目的概念&#xff0c;它正在改变着各个行业的方式和节奏。数字孪生不仅是一种技术&#xff0c;更是一种思维方式。 数字化互联网的崛起 数字化互联网正在以前所未有的速度和规模改变着我们的生活和工作方式。从智能手机到物联网设备…

按图搜索淘宝商品(拍立淘)API接口 搜爆款商品 图片搜索功能api 调用示例

接口名称&#xff1a;item_search_img 公共参数 请求地址: 测试item_search_img 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_s…

品牌为什么要做价格管控

价格管控的目的其实是为了治理低价&#xff0c;低价的存在会使渠道变得不可控&#xff0c;比如经销商低价跟价&#xff0c;消费者因为低价而转投其他品牌&#xff0c;这些无形中都会影响品牌的销量&#xff0c;阻碍品牌发展&#xff0c;所以做价格管控&#xff0c;就是在做好低…

智慧公厕助推城市管理智能化和治理精细化

随着城市化进程的不断加快&#xff0c;城市管理面临着诸多挑战和问题。而智慧公厕作为城市数字化赋能的重要一环&#xff0c;正成为推动城市管理智能化和治理精细化的关键力量。本文将以智慧公厕头部厂家广州中期科技有限公司&#xff0c;所实施大量精品案例项目的实景实图&…

(源码版)2023全国大学生数学建模竞赛E题黄河水沙监测数据分析详解+Python代码源码SARIMA模型

前言 比赛结束了不知道大家情况如何&#xff0c;就我个人而言的话&#xff0c;由于工作任务比较繁重仅完成了对D题和E题的思路解答和建模&#xff0c;还是比较遗憾的。一个人要完成多题的建模和分析确实不是一件容易的事情&#xff0c;当然我向大家做出承诺历年的建模比赛我都…

修改el-card的header的背景颜色

修改el-card的header的背景颜色 1.修改默认样式 好处是当前页面的所有的el-card都会变化 页面卡片&#xff1a; <el-card class"box-card" ><div slot"header" class"clearfix"><span>卡片名称</span><el-button s…

华为数通方向HCIP-DataCom H12-821题库(单选题:341-360)

第341题 在BGP中代表对等体之间已经建立连接的状态是以下哪一种? A、Active B、Connect C、Established D、Open 答案:C 第342题 以下关于路由选择工具的描述,错误的是哪一项? A、访问控制列表用于匹配路由信息或者数据包的地址,过滤不符合条件的路由信息或数据包 …

构造函数注入指定bean名称

配置类 Configuration public class ThreadPoolTaskExecutorConfig {Beanpublic ThreadPoolTaskScheduler syncScheduler() {ThreadPoolTaskScheduler syncScheduler new ThreadPoolTaskScheduler();syncScheduler.setPoolSize(10);syncScheduler.setThreadGroupName("s…