数组相关面试题--5.合并两个有序数组

5. 合并两个有序数组


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


 

解题思路:
      1. 从后往前遍历数组,将nums1和nums2中的元素逐个比较
         将较大的元素往nums1末尾进行搬移
      2. 第一步结束后,nums2中可能会有数据没有搬移完,将nums2中剩余的元素逐个搬移到nums1
   
   时间复杂度:O(m+n)
   空间复杂度: O(1)
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){
    // end1、end2:分别标记nums1 和 nums2最后一个有效元素位置
    // end标记nums1的末尾,因为nums1和nums2中的元素从后往前往nums1中存放
    // ,否则会存在数据覆盖
    int end1 = m-1;
    int end2 = n-1;
    int index = m+n-1;


    // 从后往前遍历,将num1或者nums2中较大的元素往num1中end位置搬移
    // 直到将num1或者num2中有效元素全部搬移完
    while(end1 >= 0 && end2 >= 0)
    {
        if(nums1[end1] > nums2[end2])
        {
            nums1[index--] = nums1[end1--];
        }
        else
        {
            nums1[index--] = nums2[end2--];
        }
    }


    // num2中的元素可能没有搬移完,将剩余的元素继续往nums1中搬移
    while(end2 >= 0)
    {
        nums1[index--] = nums2[end2--];
    }


    // num1中剩余元素没有搬移完 ---不用管了,因为num1中剩余的元素本来就在num1中
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

结合scss实现黑白主题切换

是看了袁老师的视频后,自己做了一下练习。原视频地址: b站地址https://www.bilibili.com/video/BV15z4y1N7jB/?spm_id_from333.1007.top_right_bar_window_history.content.click&vd_sourcec6cf63302f28d94ebc02cbedcecc57ea首先创建一个全局的scs…

Python的基础:模块(Modules)和包(Packages)详解

1. 模块(Modules) 一个模块是一个包含了 Python 定义和语句的文件。模块可以包括变量、函数、类等,并且提供了一种将相关代码组织成可重用单元的方式。一个模块的定义通常包括以下几个方面:   1)文件扩展名&#xff…

17. Series.dt.month-提取日期数据中的月份信息

【目录】 文章目录 17. Series.dt.month-提取日期数据中的月份信息1. 知识回顾-创建一个Series对象2. 知识回顾-pd.to_datetime()将数据转换为pandas中的日期时间格式3. 实例化类相关知识4. Series.dt.month是什么?5. 如何使用Series.dt.month?6. Series…

【数据库原理及应用教程】第三章 SQL

文章目录 建立数据库创建数据库选择元组select多表查询 追加元组 insert嵌套子查询 元组删除命令 deleteUpdate命令 修正与撤销数据库SQL-DDL撤销与修改撤销基本表指定数据库关闭数据库 建立数据库 学生选课数据库SCT 学生表:Student(SNo char(8), Sname char(10)…

Ubuntu18.04安装Loam保姆级教程

系统环境:Ubuntu18.04.6 LTS 1.Loam的安装前要求: 1.1 ROS安装:参考我的另一篇博客 Ubuntu18.04安装ROS-melodic保姆级教程_灬杨三岁灬的博客-CSDN博客还是那句话,有时候加了这行也不好使,我是疯狂试了20次&#xf…

stylelint报错at-rule-no-unknown

stylelint报错at-rule-no-unknown stylelint还将各种 sass -rules 标记mixin为include显示未知错误 at-rule-no-unknown ✖ stylelint --fix:Deprecation warnings: 78:1 ✖ Unexpected unknown at-rule "mixin" at-rule-no-unknown 112:3 ✖ Unexpected un…

2023 年 数维杯(A题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2021年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看数维杯A题! 问题重述 1、俯仰力矩和俯…

【Rust】快速教程——冻结表达式

前言 以前谁是魔我杀谁,现在我杀谁谁就是魔。——《拔魔》 \;\\\;\\\; 目录 前言Rust基本知识结构体元组结构体局部作用域冻结字面量Vec元素的类型由第一个push进的类型确定type别名from和intoTryFrom和TryInto 表达式 Rust基本知识 结构体 #[derive(Debug)] str…

华为eNSP综合实验考试

VLAN信息表 设备名称 端口 链路类型 VLAN 参数 HZ-HZCampus-Agg01-S5731 GE0/0/1 Trunk PVID:1 Allow-pass:10 20 Eth-trunk1(GE0/0/2,0/0/3,0/0/23) Trunk PVID:1 Allow-pass:10 20 GE0/0/24 Access PVID&#xf…

vb.net 实时监控双门双向门禁控制板源代码

本示例使用设备介绍:实时网络双门双向门禁控制板可二次编程控制网络继电器远程开关-淘宝网 (taobao.com) Imports System.Net.Sockets Imports System.Net Imports System.Text Imports System.ThreadingImports System.Net.NetworkInformation Imports System.Man…

Python函数进阶

函数进阶 一.函数多返回值二.函数多种传参方式三.匿名函数 一.函数多返回值 思考:如果一个函数有两个return,程序如下 只执行了一个return,原因是return可以退出当前函数,导致return下方代码不会执行 多个返回值 按照返回值的顺…

BananaPi BPI-M6(Raspberry Pi 5) Android 平板电脑镜像测试温度

我已经在本文中介绍了 全新的Banana Pi BPI-M6,并讨论了其与Raspberry Pi 5的硬件特性比较。 然后我将 Android 平板电脑固件上传到 eMMC,从而使 Banana Pi 实际可用。一开始有点坎坷,但文章中有更多内容。 在另一台电脑上,一切都…

Vatee万腾未来科技之航:Vatee创新引领的新纪元

在当今数字化时代,Vatee万腾科技正在开创一段引领未来的全新征程。以其卓越的创新能力和领导地位,Vatee万腾成为数字化领域的引领者。其未来科技之航展现了一种独特的数字化愿景,引领着科技创新进入新的纪元。 Vatee万腾在数字科技领域展现出…

如何使用功率信号源保证高精度测量

使用功率信号源是实现高精度测量的关键因素之一。在许多应用中,精确的功率信号源可以提供稳定、可靠的信号,帮助实现准确的测量结果。以下是使用功率信号源保证高精度测量的几个关键方面: 信号稳定性:在进行精确测量时&#xff0c…

热点检测/降级框架Akali的部分原理解析

发现个“轻量级本地化热点检测/降级框架 这个框架名为Akali,项目地址:https://gitee.com/bryan31/Akali主要有两个作用 1:热点检测及处理 2:降级检测及处理 从官网文档来看使用是比较简单的,一个注解就能搞定 怀着好奇的心情c…

光模块厂家如何提高千兆光模块和万兆光模块的可靠性

随着互联网的发展,光纤通信作为高速、稳定的通信方式越来越受到人们的关注。而千兆光模块和万兆光模块作为通信中必不可少的组成部分,其可靠性一直是厂家和用户所关注的重要问题。光模块的不可靠性会导致通信系统的故障和影响用户的体验,因此…

networkx使用draw画图报错:TypeError: ‘_AxesStack‘ object is not callable

一、问题描述 在使用networkx的draw绘图时nx.draw(g,posnx.spring_layout(g)),报错:TypeError: _AxesStack object is not callable 二、原因 可能是当前python环境下的networkx和matplotlib的版本不匹配。我报错时的networkx2.8,matplotl…

Element UI 偶发性图标乱码问题

1. 问题如图所示 2. 原因:sass版本低 sass: 1.26.8 sass-loader: 8.0.2 3. 解决方法 (1) 提高sass版本 (2) 在vue.config.js中添加配置 css: {loaderOptions: {sass: {sassOptions: {outputStyle: expanded}}}},4. 遇到的问题 升级后打包,报错 Syntax…

Freeswitch中mod_commonds

mod_commands Table of Contents (click to expand) 0. About1. Usage 1.1 CLI1.2 API/Event Interfaces1.3 Scripting Interfaces1.4 From the Dialplan2. Format of returned data3. Core Commands 3.1 acl  3.1.1 Syntax3.1.2 Examples3.2 alias 3.2.1 Syntax3.2.2…

VBA技术资料MF83:将Word文档批量另存为PDF文件

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…