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.mfbz.cn/a/486925.html

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

相关文章

Qt登录页面

#include "mywidget.h" #include "ui_mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::MyWidget) {ui->setupUi(this);//接收动图QMovie *mv new QMovie(":/pictrue/luori.gif");ui->loglab->setMovie(…

MD5加密

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

蓝桥杯小白月赛第八场第三题

题目描述&#xff1a; 思路&#xff1a; 根据上面的次方数&#xff0c;我们可以看出来从1次方到4次方 和 5 - 8次方&#xff0c;中间有什么规律&#xff1f; 是不是可以看出来1次方和5次方的尾数相同 2次方和6次方的尾数相同 3次方和7次方的尾数相同 4次方和8次方的尾数相同 …

浏览器缓存知识梳理

在前端性能优化的方式中&#xff0c;最重要的当然是缓存了&#xff0c;使用好了缓存&#xff0c;对项目有很大的帮助。比如我们访问网页时&#xff0c;使用网页后退功能&#xff0c;会发现加载的非常快&#xff0c;体验感很好&#xff0c;这就是缓存的力量。 什么是缓存呢&…

RSTP环路避免实验(华为)

思科设备参考&#xff1a;RSTP环路避免实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 RSTP (Rapid Spanning Tree Protocol) 是从STP发展而来 • RSTP标准版本为IEEE802.1w • RSTP具备STP的所有功能&#xff0c;可以兼容STP运行 • RSTP和STP有所不同 减少了…

英特尔生态的深度学习科研环境配置-A770为例

之前发过在Intel A770 GPU安装oneAPI的教程&#xff0c;但那个方法是用于WSL上。总所周知&#xff0c;在WSL使用显卡会有性能损失的。而当初买这台机器的时候我不在场&#xff0c;所以我这几天刚好有空把机器给重装成Ubuntu了。本篇不限于安装oneAPI&#xff0c;因为在英特尔的…

2024大一同学进入ACM实验室选拔(东北林业大学)

前言&#xff1a; 15号比赛的6道题&#xff0c;有一道题估计是为了防止有人ak设的&#xff0c;我看题解都没完全看懂&#xff0c;是现在的我的知识盲区了&#xff0c;之后再补吧。 正文&#xff1a; Problem:A股神&#xff1a; #include <bits/stdc.h> using namespace…

AVA企业服务呼叫中心管理后台源码

项目中实现用户管理&#xff0c;包括用户的录入、编辑、查看、修改、用户角色的分配 &#xff0c;支持一个用户拥有多个权限&#xff0c;角色管理&#xff0c;可以自由定义角色、并可以给角色分配不同的权限。

利用Jmeter做接口测试(功能测试)全流程分析

利用Jmeter做接口测试怎么做呢&#xff1f;过程真的是超级简单。 明白了原理以后&#xff0c;把零碎的知识点填充进去就可以了。所以在学习的过程中&#xff0c;不管学什么&#xff0c;我一直都强调的是要循序渐进&#xff0c;和明白原理和逻辑。这篇文章就来介绍一下如何利用…

基于ssh学生信息管理系统

系统是一个学生信息管理&#xff0c;有三种角色&#xff0c;分别是超级管理员和教师还有学生&#xff0c;不同角色看到的功能会不一样。 管理员&#xff1a;学院管理&#xff0c;专业管理&#xff0c;班级管理&#xff0c;学科管理&#xff0c;学生管理&#xff0c;教师管理&am…

警务数据仓库的实现

目录 一、SQL Server 2008 R2&#xff08;一&#xff09;SQL Server 的服务功能&#xff08;二&#xff09;SQL Server Management Studio&#xff08;三&#xff09;Microsoft Visual Studio 二、创建集成服务项目三、配置“旅馆_ETL”数据流任务四、配置“人员_ETL”数据流任…

c++--replace函数

目录 1.从位置 pos 开始&#xff0c;替换长度为 len 的子字符串为 str。2.用字符串 str 替换迭代器范围 [i1, i2) 内的内容。3.从位置 pos 开始&#xff0c;替换长度为 len 的子字符串为 str 中从 subpos 开始长度为 sublen 的子字符串。4.用迭代器范围 [first, last) 内的内容…

ChatGLM3 Linux 部署

1.首先需要下载本仓库&#xff1a; git clone https://github.com/THUDM/ChatGLM3 2.查看显卡对应的torch 版本 官方文档说明&#xff1a; Start Locally | PyTorch 例如&#xff1a; a. 先查看显卡的CUDA版本 nvcc --version 查看对应版本 Previous PyTorch Versions …

2024爱分析·搜索型数据库市场厂商评估报告: 拓尔思

01 研究范围定义 研究范围&#xff1a; 在中央及地方政府的信创政策推动下&#xff0c;我国信创部分领域正在从“试点验证”迈向“规模推广”阶段。随着信创替换的深化&#xff0c;爱分析观察到&#xff0c;在需求侧&#xff0c;企业对信创产品的需求逐渐融合更丰富的业务诉求…

2024年洗地机综合实力排行榜:谁才是真正的洗地神器?

近年来&#xff0c;洗地机在行业里&#xff0c;它集合了扫地和拖地以及自动清洁和除菌的功能&#xff0c;备受人们的喜爱&#xff0c;尤其是平时忙于工作并没有多少时间清洁家务的用户&#xff0c;但是对于第一次接触洗地机的用户来说&#xff0c;怎么选购洗地机也是个问题&…

力扣HOT100 - 42. 接雨水

解题思路&#xff1a; 动态规划 感觉不是很好想 class Solution {public int trap(int[] height) {int n height.length;if (n 0) return 0;int[] leftMax new int[n];leftMax[0] height[0];for (int i 1; i < n; i) {leftMax[i] Math.max(leftMax[i - 1], height[i…

【CSS】CSS基础1(CSS基本介绍+常见样式设计)

目录 什么是CSS&#xff1f; 语法规范 常见样式 例子 代码展示 什么是CSS&#xff1f; 点击以下链接了解更多&#xff1a; ​​​​​​​ ​​​​​https://baike.baidu.com/item/%E5%B1%82%E5%8F%A0%E6%A0%B7%E5%BC%8F%E8%A1%A8/524980?fromModulelemma_inlink(英文…

ADW300多功能无线计量仪表

仪表应用背景 电力运维行业&#xff1a;运维服务系统实时采集大量用户站的运行和动环数据&#xff0c;经专业数据分析&#xff0c;当用户站发生异常情况或运行故障时&#xff0c;及时反馈到运维指挥中心&#xff0c;并通过移动终端通知相应的运维工程师&#xff0c;指导现场作…

Linux Networking - MTU

MTU MTU&#xff0c;Maximum Transmission Unit&#xff0c;指的是Ethernet Frame的Payload部分的长度限制&#xff0c;如下图&#xff1a; 1500这个数字则有一定的历史原因&#xff0c; 参考链接&#xff1a; How 1500 bytes became the MTU of the internethttps://blog.b…

指针知识大礼包,让你的编程之路更顺畅(二)

1. 数组名的理解 2. 使⽤指针访问数组 3. ⼀维数组传参的本质 4. ⼆级指针 5. 指针数组 6. 指针数组模拟⼆维数 正文开始&#xff1a; 1. 数组名的理解 在上⼀个章节我们在使⽤指针访问数组的内容时&#xff0c;有这样的代码&#xff1a; int arr[10] {1,2,3,4,5,6,7,…
最新文章