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

Leetcode. 88合并两个有序数组

合并两个有序数组

文章目录

  • 归并
    • 思路二

归并

核心思路: 依次比较,取较小值放入新数组中
i 遍历nums1 , j 遍历nums2 ,取较小值放入nums3中
那如果nums[i] 和nums[j]中相等,随便放一个到nums3

在这里插入图片描述

在这里插入图片描述

那如果nums[i] 和nums[j]中相等,随便放一个到nums3

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

此时 nums1 中的元素已经走完了,那么直接把 nums2 中剩下的元素拿到 nums3 中去,
因为nums2 是有序数组 ,所以不需要考虑 nums2剩下的元素比nums3小
在这里插入图片描述

在这里插入图片描述

这总方法最大的问题就是新开辟了一个数组 如果题目要求空间复杂度为O(1) ,这种方法就不管用了

思路二

归并依次比较取较小值 ,但是思路二是依次比较取较大值
思路二和归并大体上相似 ,

思路二整体思路:
i 指向nums1最后一个有效元素 ,向前遍历 ,
j 指向nums2最后一个有效元素 ,向前遍历
dst指向nums1 的最后一个元素 ,也是向前遍历
j 指向的元素如果大于 i 指向的元素,那么就把 j 指向的元素放入 dst 指向的位置中去

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

当j 向前遍历完nums2时 ,我们直接让它结束就行了

但是还需要多考虑一种情况

在这里插入图片描述

当nums1中的每一个元素都比nums2中的每一个元素大 ,nums1 一定会先遍历完 ,这时候就需要将nums2 的每一个元素提前放入nums1中
在这里插入图片描述

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{int i = m -1 ;int j = n- 1 ;int dst = m + n -1 ;while( i >=0 && j >= 0){//nums2先走完 , j < 0 if( nums1[i]>= nums2[j])  //取较大值{nums1[dst] = nums1[i];dst-- ;i--;}else{nums1[dst]=nums2[j];dst--;j--;}}// nums1 先走完 , i < 0 while( j>=0 ){nums1[dst] = nums2[j];j -- ;dst -- ;}
}

如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!

http://www.lryc.cn/news/39564.html

相关文章:

  • 【数据库】数据库查询(进阶命令详解)
  • 参数缺省和函数重载讲解
  • 关于召开2023第八届国际发酵培养基应用发展技术论坛的通知
  • Java之深度优先(DFS)和广度优先(BFS)及相关题目
  • 【链表OJ题(四)】反转链表
  • java ArrayList源码分析(深度讲解)
  • 【网络编程】零基础到精通——NIO基础三大组件和ByteBuffer
  • 操作系统 - 1. 绪论
  • 详谈parameterType与resultType的用法
  • 【Linux】进程概念、fork() 函数 (干货满满)
  • 【动态规划】最长上升子序列、最大子数组和题解及代码实现
  • Ajax进阶篇02---跨域与JSONP
  • C 语言编程 — 线程池设计与实现
  • 并发编程要点
  • HDFS黑名单退役服务器
  • 基于stm32智能语音电梯消毒系统
  • FreeRTOS系列第1篇---为什么选择FreeRTOS?
  • 基于.NET Core内置浏览器窗体应用程序界面框架
  • 【数据结构初阶】一文带你学会归并排序(递归非递归)
  • Simulink壁咚(一)——What and How
  • 【PyTorch】Pytorch基础第0章
  • Android学习总结
  • 虚拟机ubuntu安装samba服务
  • 开发板中的内存压力测试,你了解多少?
  • MATLAB | 这些花里胡哨的热图怎么画
  • Java开发的一些编码建议
  • 【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.59】引入ASPP模块
  • C++STL set/multiset容器 构造和赋值 大小和交换 插入和删除 查找和统计
  • 产品研发项目进度管理软件工具有哪些推荐?整理10款最佳进度管理软件
  • 「ML 实践篇」分类系统:图片数字识别