【CT】LeetCode手撕—88. 合并两个有序数组

目录

  • 题目
  • 1- 思路
  • 2- 实现
    • ⭐88. 合并两个有序数组——题解思路
  • 2- ACM实现

题目

  • 原题连接:88. 合并两个有序数组

1- 思路

模式识别

  • 模式1:两个有序数组合并 ——> 双指针
  • 模式2:返回结果填充到 nums1[m+n] ——> 需要开辟新的数组空间 sorted[m+n] 最后结果赋值给 nums1

思路

  • 1.定义双指针:分别指向 nums1nums2
  • 2.开辟新的数组空间sorted[m+n] ,在合并完之后赋值

2- 实现

⭐88. 合并两个有序数组——题解思路

在这里插入图片描述

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] sorted = new int[m+n];
        int si = 0;
        int index1=0,index2=0;
        while(index1<m && index2<n){
            if(nums1[index1]<=nums2[index2]){
                sorted[si++] = nums1[index1++];
            }else{
                sorted[si++] = nums2[index2++];
            }
        }

        while(index1<m){
            sorted[si++] = nums1[index1++];
        }
        while(index2<n){
            sorted[si++] = nums2[index2++];
        }
        // 赋值给 nums1
        for(int i = 0 ; i < m+n;i++){
            nums1[i] = sorted[i];
        }
    }
}

2- ACM实现

public class mergeTwoArrays {

    public static int[] mergeTwoArrays(int[] nums1,int m, int[] nums2,int n){
        int index1 = 0,index2 = 0;
        int si = 0;
        int[] sorted = new int[m+n];
        while(index1<m && index2<n){
            if(nums1[index1]<=nums2[index2]){
                sorted[si++] = nums1[index1++];
            }else{
                sorted[si++] = nums2[index2++];
            }
        }
        while(index1<m){
            sorted[si++] = nums1[index1++];
        }
        while(index2<n){
            sorted[si++] = nums2[index2++];
        }
        for(int i = 0 ; i < m+n;i++){
            nums1[i] = sorted[i];
        }
        return nums1;
    }

    public static void main(String[] args) {
        System.out.println("输入数组1和数组2长度 m 和 n");
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = sc.nextInt();

        int[] nums1 = new int[m+n];

        int[] nums2 = new int[n];

        System.out.println("输入数组1");
        for(int i = 0 ; i <m;i++){
            nums1[i] = sc.nextInt();
        }
        System.out.println("输入数组2");
        for(int j = 0 ; j < n;j++){
            nums2[j] = sc.nextInt();
        }
        int[] res = mergeTwoArrays(nums1,m,nums2,n);
        for(int r:res){
            System.out.print(r+" ");
        }
    }
}

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

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

相关文章

Linux shell 重定向输入和输出

Linux shell 重定向输入和输出 1. Standard I/O streams2. Redirecting to and from the standard file handles (标准文件句柄的重定向)2.1. command > file2.2. command >> file2.3. command 2> file2.4. command 2>> file2.5. command < file2.6. comm…

餐饮食堂安全守护者:可燃气体报警器故障处理与检测要点解析

在餐饮食堂中&#xff0c;可燃气体报警器的正常运行对于预防火灾和保障人员安全至关重要。 接下来&#xff0c;佰德将围绕可燃气体报警器的故障现象识别、原因排查、安全操作准则、专业工具与备件、故障处理步骤、验证与测试以及维护与保养建议等方面进行详细阐述&#xff0c;…

VS2022打开.netcore2.2 问题解决

1.vs2022运行时一直提示异常 2.解决方法&#xff0c;双击当前的项目修改xxxx.csproj文件 把当前的版本修改为2.2.0即可重新编译运行

低代码开发平台

a.本质&#xff1a;降本增效的体系 1.强制统一组件库复用 2.提升系统一致性 3.降低开发资源投入 一、强制统一组件库复用&#xff1a;物料堆的建立 物料堆的形态&#xff1a;直联、整合 1.直联必须一层嵌套一层&#xff1a;el-form el-form-item el-input 2.整合是经过优…

快慢指针技巧

快慢指针技巧 在说快慢指针之前&#xff0c;我们先说一下双指针。 双指针 双指针&#xff1a;使用两个指针来解决问题。 所谓的指针其实就是指数组的下标&#xff0c;或者链表的节点的地址。 我们以数组为例介绍一下。 有两个指针分别存储着数组的两个下标&#xff0c;这就…

秋招突击——6/15——复习{(树形DP)树的最长路径,(单调队列优化DP)——最大子序和,无重复最长子串}——新作{四数之和}

文章目录 引言复习树形DP——树的最长路径实现代码答疑 单调队列优化DP——最大子序和个人实现思路参考思路分析实现代码 无重复最长字串思路分析实现代码 新作四数之和实现思路需要注意的问题 参考代码分析思路实现代码 总结 引言 今天好好看看树的最长的路径&#xff0c;自己…

JavaWeb之初识Tomcat

Tomcat 轻量级应用服务器、JSP、Servlet Tomcat目录结构 在IDEA中创建web项目 在这里不使用maven构建项目&#xff0c;这种方式后面会更新 新建一个java项目File -> Project Settings -> Facets -> -> Web -> OK ( 此时src目录下有一个web目录 )Edit ->…

39、基于深度学习的(拼音)字符识别(matlab)

1、原理及流程 深度学习中常用的字符识别方法包括卷积神经网络&#xff08;CNN&#xff09;和循环神经网络&#xff08;RNN&#xff09;。 数据准备&#xff1a;首先需要准备包含字符的数据集&#xff0c;通常是手写字符、印刷字符或者印刷字体数据集。 数据预处理&#xff1…

ElasticSearch + kibana:类型声明

当我们使用 kibana 创建索引时&#xff0c;如果不申明数据类型&#xff0c;默认字符串赋予 text类型&#xff0c;如下图所示 接下来我们继续创建多条数据如下&#xff1a; 下面我们来检索下&#xff1a; 通过以上两个案例我们发现&#xff0c;使用 match 模糊查询 li-3 明明…

智利企鹅濒临灭绝,回顾曾仕强的2025年预言!实干才是硬道理——早读(逆天打工人爬取热门微信文章解读)

你相信我们5000年凝结的精华易经吗&#xff1f; 引言Python 代码第一篇 洞见 有人晒出高考后家长支出清单&#xff0c;我觉得是时候告诉孩子挣钱的真相了第二篇 视频新闻结尾 引言 昨天有点破了 看小视频不小心看过头了 大概看了有2个小时 才醒悟过来 再接再厉呀&#xff01; …

vue3中如何使用pinia -- pinia使用教程(一)

vue3中如何使用pinia -- pinia使用教程&#xff08;一&#xff09; 安装使用创建 store使用 store访问修改 store 使用组合式 api 创建 store -- setup storepinia 和 hook 的完美结合如何解决上面的问题 使用 hook 管理全局状态和 pinia 有何优缺点&#xff1f;参考小结 pinia…

哈喽GPT-4o——对GPT-4o 文本创作的思考与看法

目录 用法1&#xff1a;创作小说用法2&#xff1a;创作散文用法3&#xff1a;创作诗歌1、古诗2、现代诗 用法4&#xff1a;创作儿童故事用法5&#xff1a;创作剧本 大家好&#xff0c;我是哪吒。 都说ChatGPT4o是目前文本创作的最强大模型&#xff0c;它都可以用于哪些方面的文…

ArcGIS 10.2软件安装包下载及安装教程!

今日资源&#xff1a;ArcGIS 适用系统&#xff1a;WINDOWS 软件介绍&#xff1a; ArcGIS是一款专业的电子地图信息编辑和开发软件&#xff0c;提供一种快速并且使用简单的方式浏览地理信息&#xff0c;无论是2D还是3D的信息。软件内置多种编辑工具&#xff0c;可以轻松的完成…

VirtualHere 允许通过网络远程使用 USB 设备,就像本地连接一样!

传统上&#xff0c;USB 设备需要直接插入计算机才能使用。有了 VirtualHere&#xff0c;就不再需要这样做&#xff0c;网络本身就变成了传输 USB 信号的电缆&#xff08;也称为 USB over IP、USB/IP、USB over WiFi、USB over Ethernet、USB 设备服务器&#xff09;。 此 USB …

Google谈出海:品牌「性价比」转向「心价比」

Google Marketing Live中国站活动现场 越来越多的中国全球化品牌基于对全球消费和海外地区的深刻洞察&#xff0c;不断提升产品研发和迭代能力&#xff0c;在海外消费者心中塑造「中国质造」和「中国智造」的新形象。2023年6月15日&#xff0c;凯度与Google合作发布《2023 凯…

JavaFX GridPane布局

网格布局 GridPane通常用于布局&#xff1a;表单布局 GridPane可以在行&#xff0c;列或单元格级别指定约束。 例如&#xff0c;我们可以设置包含输入文本字段的第二列&#xff0c;以在窗口调整大小时调整大小。 使用Java FX创建表格的时候&#xff0c;这个布局非常方便。 包…

开源低代码平台,JeecgBoot v3.7.0 里程碑版本发布

项目介绍 JeecgBoot是一款企业级的低代码平台&#xff01;前后端分离架构 SpringBoot2.x&#xff0c;SpringCloud&#xff0c;Ant Design&Vue3&#xff0c;Mybatis-plus&#xff0c;Shiro&#xff0c;JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领…

7大功能特色 让这款信创传输软件受众行业青睐

信创传输软件&#xff0c;顾名思义&#xff0c;也就是能够支持信创环境的文件传输系统&#xff0c;并且需要具备强大的功能&#xff0c;可以满足各种复杂的传输需求。 这种软件可能具有以下特点和功能&#xff1a; 1、兼容性&#xff1a;能够与信创环境中使用的硬件设备、网络…

智慧校园可视化大屏,对教学教务的提升是肉眼可见的

随着信息技术的快速发展&#xff0c;智慧校园已经成为许多学校追求的目标。智慧校园可视化项目是一种通过信息化手段对教学教务进行管理和提升的创新方式。 智慧利用先进的技术手段&#xff0c;将校园各个环节的数据信息进行收集、分析和展示&#xff0c;从而实现对教学教务工…

用Python分析《三国演义》中的人物关系网

用Python分析《三国演义》中的人物关系网 三国演义获取文本文本预处理分词与词频统计引入停用词后进行词频统计构建人物关系网完整代码 三国演义 《三国演义》是中国古代四大名著之一&#xff0c;它以东汉末年到晋朝统一之间的历史为背景&#xff0c;讲述了魏、蜀、吴三国之间…