当前位置: 首页 > news >正文

【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++];}// 赋值给 nums1for(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+" ");}}
}
http://www.lryc.cn/news/374491.html

相关文章:

  • 深入分析 Android BroadcastReceiver (二)
  • Linux常⽤服务器构建-ssh和scp
  • 《QT实用小工具·七十》openssl+qt开发的P2P文件加密传输工具
  • 短链接生成器排名前三!长链接转化成短链接工具有哪些?
  • Vue50-mixin混入
  • Java创建线程的方式
  • C# 程序结构
  • 【Linux】使用 iptables 验证访问HDFS 所使用到的端口
  • 工程设计问题---多盘离合器制动器设计问题
  • triton矩阵乘以及缓存优化
  • springboot 搭建一个 测试Kafka 集群连通性demo
  • Ant Design Vue 动态表头和数据填充
  • 在Spring Cloud项目中集成Springdoc OpenAPI生成OpenAPI 3文档的详细解析
  • Linux shell 重定向输入和输出
  • electron录制工具-视频保存、编辑页面
  • curl命令行发送post/get请求
  • Redis 分片集群
  • 学习分享-Callable 和 Runnable 任务
  • three.js 基础01
  • 使用file.transferTo()做Java文件复制,目标文件存在时,是抛异常还是覆盖写入?
  • Python:线性查找法
  • IDEA 设置主题、背景图片、背景颜色
  • 【elementui源码解析】如何实现自动渲染md文档-第三篇
  • this指针如何使C++成员指针可调用
  • Redis数据结构之字符串(sds)
  • tokenization(二)子词切分方法
  • 慈善组织管理系统设计
  • 大疆Pocket3手持记录仪格式化恢复方法
  • Mybatis的面试题
  • 渗透测试之内核安全系列课程:Rootkit技术初探(五)