合并两个升序的数组并且去重的方法

news/2025/2/26 13:46:38
function arrConcat (arrA, arrB) {
    const res = [],
        dir = {};
    let pointerA = 0,
        pointerB = 0;
    while (pointerA < arrA.length && pointerB < arrB.length) {
        let temp;
        //将较小的值推到栈中
        if (arrA[pointerA] > arrB[pointerB]) {
            temp = arrB[pointerB++];
        }
        else {
            temp = arrA[pointerA++];
        }
        
        //字典记录添加过的数据
        if (!dir.hasOwnProperty(temp)) {
            res.push(temp);
            dir[temp] = true;
        }
    }

    //没有遍历到尾部的数组
    const otherData = arrA.slice(pointerA).concat(arrB.slice(pointerB));
    res.push(...otherData);

    console.log(res);//[1,2,4,5,6]
}
arrConcat([1,2,4,5],[2,4,6])

 


http://www.niftyadmin.cn/n/4541416.html

相关文章

shell脚本之颜色效果显示以及PS1颜色实战

在bash shell脚本中我们可以使用ASCII颜色来显示文本信息。 格式&#xff1a;\033\[31m hello \033[0m ##m&#xff1a; 左侧#&#xff1a;这个#可以是3或者4&#xff0c;作用不一样。 3&#xff1a;前景色 4&#xff1a;背景色 右侧#&#xff1a;颜色种类 1,2,3,4,5,6,7 前景和…

promise.allrace

Promise.all() Promise.all() 它接收一个promise对象组成的数组作为参数&#xff0c;并返回一个新的promise对象。 当数组中所有的对象都resolve时&#xff0c;新对象状态变为fulfilled&#xff0c;所有对象的resolve的value依次添加组成一个新的数组&#xff0c;并以新的数组…

vue版公共请求方法

import axios from "axios"; import Qs from "qs"; import API_BASE_URL from "/api/api.js"; const Http axios.create({baseURL: API_BASE_URL,timeout: 6000, // 设置超时时间6swithCredentials: true, // cross-site Access-Control });// …

ROS2中涉及到的基本概念

从计算图&#xff08;Graph&#xff09;级的角度来看&#xff0c;ROS的本质就是一个基于网络的数据流动控制器。它的核心roscore其实就相当于一个服务器&#xff08;Server&#xff09;&#xff0c;主导着数据的流动&#xff0c;每一个程序都相当于一个客户&#xff08;Client&…

一)golang的单例模式

在23种设计模式中&#xff0c;单例模式作为最普遍运用的设计模式之一&#xff0c;在软件开发中起着非常重要的地位。 应用场景&#xff1a;对资源单一且有严格控制的场景&#xff0c;例如. 数据库连接类对象&#xff1a;可一次创建&#xff0c;一直使用的类 在golang中的单例模…

非洲动保组织为保护野生动物导入AI辨识镜头

非洲有许多野生动物受到盗猎者的威胁&#xff0c;但守护动物的巡守人力却远远不足以防止盗猎者的偷袭。为了保护野生动物不被盗猎&#xff0c;近来广受运用的人工智能&#xff08;AI&#xff09;就派上了用场。非洲是一片广袤的大陆&#xff0c;国家公园或保育区的范围相当广大…

python基本装饰器

#基本代码&#xff1a;import timedef decoratorrunlog_args(logval):print("logval is runing"str(logval))def decoratorrunlog(func):print("outerlog is runing")def inner(*args,**kwargs):print("innerlog is runing")stime time.time()t…

ESLint简介

ESLint简介 ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具&#xff0c;使用它可以避免低级错误和统一代码的风格。如果每次在代码提交之前都进行一次eslint代码检查&#xff0c;就不会因为某个字段未定义为undefined或null这样的错误而导致服务崩溃&…