算法(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
}
相关推荐
雾喔2 分钟前
算法练习5
算法·代理模式
名字还没想好☜5 分钟前
React 受控输入框光标跳到末尾:格式化输入时的 selection 丢失 bug 与修复
前端·javascript·react.js·bug·react·next.js
不好听61315 分钟前
TypeScript 类型系统:`type` vs `interface` 与 `import type`
typescript
问商十三载16 分钟前
RAG 检索召回越多越好?2026 信噪比模型深度解析
人工智能·算法·机器学习
额恩6617 分钟前
ResearchPilot 第三阶段总结报告
python·算法
upgrador23 分钟前
桌面应用开发:Electron 与 NSIS 的关系、打包流程及 Windows 本地构建实战
javascript·windows·electron
Hi李耶30 分钟前
【LeetCode】9-回文数
算法·leetcode·职场和发展
红叶舞30 分钟前
基于线段树的数据结构
数据结构·python·算法
我要两颗404西柚43 分钟前
Stage three:VUE工程化与实战工具
前端·javascript·vue.js
断点之下1 小时前
从“理扑克牌”到“分组优化”——直接插入排序与希尔排序详解
数据结构·算法·排序算法