js-合并两个有序数组
题目:
注意:
1.保证nums1数组有足够的空间存放nums2数组的元素,nums1的数组空间大小为m+n
2.不要返回合并的数组,将数组nums2的数据合并到nums1里面就好了
3.nums1数组在[0,m-1]的范围也是有序的
方法1:直接合并后排序
var merge=function(nums1,m,nums2,n){
nums1.splice(m, nums1.length – m, ...nums2);
nums1.sort((a,b) => a - b);
};
方法2思路:
标签:从后向前数组遍历
因为nums1的空间都集中在后面,所以从后向前处理排序的数据会更好,节省空间,一边遍历一边将值填充进去
设置指针len1和len2分别指向nums1和nums2的有数字尾部,从尾部值开始比较遍历,同时设置指针len指向nums1的最末尾,每次遍历比较值大小之后,则进行填充
当len1<0时遍历结束,此时nums2中若有剩余数据未拷贝完全,将其直接拷贝到nums1的前面,最后得到结果数组
var merge=function(nums1,m,nums2,n){
let len = m + n - 1;
let len1 = m - 1;
let len2 = n - 1;
while(len1>=0 && len2>=0)
nums1[len--] = nums1[len1] >= nums2[len2] ? nums1[len1--] : nums2[len2--];
while(len2>=0)
nums1[len--]=nums2[len2--];
原题来自力扣
如果有错,请您指出!如有侵权,请联系我删除!
js-合并两个有序数组相关推荐
- 88. 合并两个有序数组 JavaScript实现
88. 合并两个有序数组 1.直接合并后排序 将nms2放到nums1的后面,然后进行排序 var merge = function(nums1, m, nums2, n) {// 将splice将n ...
- 数组-合并两个有序数组(双指针,从后往前)
题意: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 ...
- LeetCode-双指针-88. 合并两个有序数组
88. 合并两个有序数组 思路:归并排序,一长一短,肯定会有一个先放完,放完后把另一个拷贝过去即可. 为了避免覆盖所以从最后开始向前放最大的元素 class Solution {public:void ...
- LeetCode 88合并两个有序数组89格雷编码
微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...
- 合并两个无序数组java_88. 合并两个有序数组
88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2的 ...
- 合并两个有序数组(双/三指针)
今天写作业,合并两个有序数组a和b,时间复杂度要求O(n),空间复杂度要求O(1). 很快想到创建第三个数组c,用双指针初始化指向a和b的头元素,每次选择较大者在c上尾插进去之后,再后移相对应a或者b ...
- 双指针:88. 合并两个有序数组
题目链接 88. 合并两个有序数组 解题思路 一. 合并数组后排序,时间复杂度为O((n+m)log(n+m)) 代码: 快排详解 class Solution {public void merge( ...
- LeetCode 88. 合并两个有序数组 golang
88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...
- 88. 合并两个有序数组 golang
88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...
- 中数组的合并_【美团面试题】合并两个有序数组
[美团面试题]合并两个有序数组 题目描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组 划重点 初始化 nums1 和 ...
最新文章
- 【廖雪峰python入门笔记】tuple_创建
- linux shell中清理僵尸进程
- TCP连接过程:三次握手与四次握手—Vecloud微云
- django 创建APP 后找不到 templates文件夹下的Html文件
- Html5 dragdrop
- Spring Cloud微服务实战:外卖订餐系统
- 处理WinForm多线程程序时的陷阱(摘自网络)
- shell脚本,结合expect给当前网段所有主机分发任意文件
- 微课|《Python编程基础与案例集锦(中学版)》第3章(1)
- angularjs基础知识1
- HashMap的底层结构和实现原理
- Web前端程序员简历
- 知网查重报告html乱码,知网查重报告乱码如何解决?
- 广州坐标系转换大地2000_如何将百度坐标转换为国家2000坐标系?
- automation服务器不能创建对象问题解决
- outlook邮件撤回失败
- 深度信念网络python_深度信念网络python
- 通达信l-2服务器文件,分享两个手机版通达信的指标源码(PC端也适用)
- 在同一个浏览器上打开同一个网址只打开一个窗口的方法
- 基于python的jieba分词
热门文章
- 华为交换机查看当前配置
- 南方cass快捷键命令修改在哪_南方测绘cass快捷键命令大全,南方测绘cass常用的快捷键命令有哪些?...
- 免费好用的英语词频统计软件(下载地址在文末)
- 搭建Linux虚拟机并编写简单程序
- 更换光猫的原理与方法
- ftp断点下载工具,推荐6款好用的ftp断点下载工具,怎么使用
- 大华相机SDK调用——主动采图、外触发、参数
- 接口性能测试方案分析
- 企业版php自动发卡平台,企业版PHP自动发卡平台源码V6.3版
- rs232接口_串口、COM口、UART口,TTL、RS-232、RS-485这么多接口,怎么区分