1_88. 合并两个有序数组

1_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 中。

进阶:你可以设计实现一个时间复杂度为 O(m + n) 的算法解决此问题吗?

代码实现

class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {for(int i=m,j=0; i<nums1.length;i++,j++){nums1[i]=nums2[j];}for(int i=0;i<nums1.length;i++){// 使用冒泡排序for(int j=0;j<nums1.length-i-1;j++){if(nums1[j]>nums1[j+1]){int temp =nums1[j];nums1[j]=nums1[j+1];nums1[j+1]=temp;}}}System.out.print("[");for(int i=0; i<nums1.length;i++){System.out.print(nums1[i]);if(i<nums1.length-1){System.out.print(",");}}System.out.print("]");}
}

当时思路

  • 拿到题目时时看到nums1的长度是两个数组加起来, 并且已经知道两个数组中各存了多少个数值n, m.
  • 这里就考虑到可以直接在nums1数组后面的零,全部替换成nums2的数值, 然后再进行升序排序.
  • 排序当时第一想法就是使用冒泡排序(好吧这两天刚学了冒泡排序)
  • 然后再使用普通for循环答应一下数组, 这里本来是想使用加强for循环, 在IDEA中运行没问题的情况下, 在线提交的时候居然报错.

优化

  • 从上图可以看到可优化空间非常大, 但是目前还没有思路, 后续再更新.


  • 到此教程就结束了.

  • 转载: 请附上本文链接.

  • 如果文章对你有帮助, 可以点赞收藏一下, 以防下次需要可以快速找到.

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

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

相关文章

【CSP试题回顾】202006-1-线性分类器(优化)

CSP-202006-1-线性分类器 解题思路 1.数据结构&#xff1a; 代码使用了一个名为 MyPoint 的结构体来表示空间中的点。这个结构体包含三个属性&#xff1a;x 和 y 表示点的坐标&#xff0c;type 表示点的类型。点的类型用整数表示&#xff0c;类型 ‘A’ 用 0 表示&#xff0…

使用U盘重装CentOS7系统

下载CentOS7 系统镜像 制作启动U盘之前&#xff0c;首先要准备一个系统镜像&#xff0c;这里我在CentOS官网直接下载镜像文件&#xff1a; CentOS官网 为了保证下载速度&#xff0c;这里我使用阿里云镜像下载&#xff1a; 阿里云镜像 如上图所示&#xff0c;我需要一个带UI界…

ES 进阶知识

索引Index 一个索引就是一个拥有几分相似特征的文档的集合。比如说&#xff0c;你可以有一个客户数据的索引&#xff0c;另一个产品目录的索引&#xff0c;还有一个订单数据的索引。一个索引由一个名字来标识&#xff08;必须全部是小写字母&#xff09;&#xff0c;并且当我们…

pytorch代码中optimizer.step()和scheduler.step()有什么区别

optimizer.step()通常用在每个patch_size之中(一个patch_size的数据更新一次模型参数)&#xff0c;而scheduler.step()通常用在epoch里面,但是不绝对&#xff0c;可以根据具体的需求来做。只有用了optimizer.step()&#xff0c;模型才会更新&#xff0c;而scheduler.step()是对…

【机器学习】无监督学习算法之:K均值聚类

K均值聚类 1、引言2、K均值聚类2.1 定义2.2 原理2.3 实现方式2.4 算法公式2.4.1 距离计算公式2.4.1 中心点计算公式 2.5 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c; K均值聚类 我不懂&#xff0c;能不能给我讲一讲&#xff1f; 小鱼&#xff1a;行&#xf…

latex在写算法`\For` 和 `\EndFor` 以及 `FOR` 和 `\ENDFOR` ,报错Undefined control sequence.

这里写目录标题 1. 错误原因2. 进行改正3. 爱思唯尔期刊与施普林格期刊对于算法的格式不太一样&#xff0c;不能直接套用总结 1. 错误原因 我在算法中使用\For&#xff0c;\EndFor 2. 进行改正 换成FOR&#xff0c;\ENDFOR 3. 爱思唯尔期刊与施普林格期刊对于算法的格式不太…

cdp集群yarn组件ResourceManager无法启动问题记录

前言&#xff1a;cdp集群装了Kerberos认证&#xff0c;在进行权限集成时集群所有组件高可用状态失效&#xff0c;yarn组件ResourceManager停止 查看ResourceManager组件日志&#xff0c;报错如下&#xff1a; Error starting ResourceManager org.apache.hadoop.service.Servi…

CMake学习笔记(一)一个最简单的CMakeLists嵌套示例

目录 1 mkdir project_macro 2 在project_marco中建立CMakeLists.txt 3 建立专门的src文件夹 4 在src中添加main.cpp和CMakeLists.txt 5 回到project_macro目录&#xff0c;建立build文件夹 6 进入build 文件夹&#xff0c;开始cmake 7 在build文件夹里执行make指令 8 …

Softmax到底行还是列

对于二维张量&#xff0c;飞话不多说&#xff0c;直接看代码 input_tensor torch.tensor([[2,3,5],[2,2,2],[3,1,3]], dtypetorch.float32) # input_tensor torch.rand((1000,1000,100)) print(input_tensor) print("*"*40) print("沿着dim1&#xff0c;计算…

URL 中 pathname 的命名规则

URL 中 pathname 的命名规则 pathname 是 URL 中标识特定资源或页面的路径部分。它通常遵循以下命名约定&#xff1a; 使用小写字母和连字符&#xff1a;路径名应使用小写字母和连字符&#xff08;-&#xff09;分隔单词。避免使用大写字母、下划线或其他特殊字符。使用描述性…

直播行业网络安全建设

一、引言 直播行业近年来蓬勃发展&#xff0c;吸引了大量用户和资本的关注。然而&#xff0c;随着行业的壮大&#xff0c;网络安全问题也日益凸显。构建一个安全、稳定的直播行业网络对于保障用户权益、维护行业秩序具有重要意义。本文将详细探讨直播行业安全网络的构建与保障…

蓝桥杯算法基础(28)11道关于字符串的小题

判断字符串有无重复字符 public class Different{public boolean checkDifferent(String iniString){if(StringUtils.isEmpty(iniString)){//判断是否为空return true;}int[] flagnew int[128];//ASCII码128个字符//扫描字符串for(int i0;i<iniString.length();i){int c(int…

通俗易懂:MySQL如何支持JSON数据类型?提供一个使用案例。

MySQL从5.7.8版本开始正式引入了原生的JSON数据类型&#xff0c;用来支持JSON格式数据的存储、查询和操作。MySQL的JSON数据类型提供了以下几个关键特性&#xff1a; 1. 存储MySQL中的JSON列可以存储符合JSON格式规范的数据&#xff0c;存储的内容会被MySQL转换为内部格式&…

MongoDB知识

1、部署MongoDB &#xff08;1&#xff09;new好一个mongo文件之后执行 &#xff08;出现mongodb.key&#xff09;记得放行端口 openssl rand -base64 666 > mongodb.key &#xff08;2&#xff09;放到一个docker-compose.yml之后docker-compose up -d执行 version: 3.…

C语言 结构体和联合体、解释C语言中的结构体及其用途。

一、结构体和联合体 结构体和联合体在C语言中都是重要的数据类型&#xff0c;但它们在使用和特性上有所区别。 结构体是由一批数据组合而成的结构型数据&#xff0c;由一组称为成员&#xff08;或称为域&#xff0c;或称为元素&#xff09;的不同数据组成&#xff0c;其中每个…

JavaSE系统性总结全集(精华版)

目录 1. 面向对象&#xff08;封装&#xff0c;继承&#xff0c;多态&#xff09;详解 1.1 面向过程和面向对象的区别 1.2面向对象的三大特性 1.2.1 封装 1.2.2 继承 1.2.3 多态 1.2.4 方法重写和方法重载的区别&#xff08;面试题&#xff09; 1.2.5 访问权限修饰符分…

《自动机理论、语言和计算导论》阅读笔记:p5-p27

《自动机理论、语言和计算导论》学习第2天&#xff0c;p5-p27总结&#xff0c;总计23页。 一、技术总结 1.集合 (1)commutative law of union. (2)distribute law of union. 2.归纳法(induction) & 演绎法(deduction) (1)归纳法&#xff1a;从许多个别的事实或原理中…

代码随想录算法训练营第十六天| 104.二叉树的最大深度、559.n叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

系列文章目录 目录 系列文章目录104.二叉树的最大深度①递归法直接法(求深度&#xff0c;前序遍历)间接法&#xff08;求高度&#xff0c;后序遍历&#xff09; ②迭代法&#xff08;层序遍历中有&#xff09; 559.n叉树的最大深度①递归法间接法&#xff08;后序遍历求高度&am…

自动化脚本-滑动验证码识别登录

结果演示 滑块验证码登录 测试网站 提供各类型验证码识别验证&#xff0c;主要提供人机识别与验证服务 行为验证4.0-适应型验证码-滑动验证,点选验证,图片验证-极验GeeTest 代码实现 相关前置依赖可参考 自动化脚本-图片验证码识别登陆-CSDN博客 具体实现 # -*- coding: u…

优必选校招软件开发岗笔试Java题解

1、计算某天是星期几 输入一个年月日&#xff0c;计算出这个日期对应的是星期几 注意&#xff1a; 闰年 公元年分除以4不可整除&#xff0c;为平年。 公元年分除以4可整除但除以100不可整除&#xff0c;为闰年。 公元年分除以100可整除但除以400不可整除&#xff0c;为平年。 …