算法(TS):合并二维有序数组成一维有序数组

合并二维有序数组成一维有序数组的核心是合并有序的一维数组,声明变量 answer 为最终的合并结果,其初始值为 arr0

第一步将 arr1 合并到 answer, 第二步将 arr2 合并到 answer,回到 arr 中的所有一维数组合并到 answer。

ts 复制代码
function mergeArr(arr: number[][]):number[] {
    if(arr.length === 0) return[]
    const answer: number[] = [...arr[0]]
    const len = arr.length
    let index = 1
    // 合并两个有序一维数组
    const merge = (origin: number[],target:number[]) => {
        let i = origin.length - 1,j = target.length - 1
        target.push(...new Array(origin.length))
        let targetIndex = target.length - 1,cur
        while(i >= 0 || j >= 0) {
            let cur: number = origin[i]
            if(i < 0) {
                cur = target[j]
                j--
            } else if(j < 0) {
                cur = origin[i]
                i--
            } else if(origin[i] >= target[j]) {
                cur = origin[i]
                i--
            } else if(origin[i] < target[j]) {
                cur = target[j]
                j--
            }

            target[targetIndex] = cur
            targetIndex--
        }
    }

    while(index < len) {
        merge(arr[index],answer)
        index++
    }

    return answer
}
相关推荐
Jerry1 小时前
LeetCode 1047. 删除字符串中的所有相邻重复项
算法
可编程芯片开发4 小时前
基于霍尔传感器和PID控制器的有功功率检测控制系统simulink建模与仿真
算法
To_OC4 小时前
别再串行写 await 了,Promise.all 才是并行请求的正确打开方式
前端·javascript·promise
To_OC4 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
你怎么知道我是队长6 小时前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
战族狼魂6 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
白日焰火17 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
imuliuliang7 小时前
关于图搜索算法的性能建模与可预测性研究7
算法
名字还没想好☜7 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司7 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能