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

合并两个有序数组(Leetcode)

解题思路:

  1. 三个指针

    • $p1: 指向 nums1 中的最后一个非零元素。
    • $p2: 指向 nums2 的最后一个元素。
    • $p: 指向 nums1 的最后一位,用于存储合并后的元素。
  2. 从后往前填充

    • 比较 nums1[$p1]nums2[$p2],较大的放入 nums1[$p],指针向前移动。
  3. 处理剩余元素

    • 如果 nums2 中还有剩余的元素(p2 >= 0),直接拷贝到 nums1
  4. 无需处理 nums1 剩余的元素

    • 因为 nums1 的前半部分已经排好序,无需再处理。
function merge(&$nums1, $m, $nums2, $n) {
    $p1 = $m - 1;
    $p2 = $n - 1;
    $p = $m + $n - 1;
    while($p1>=0 && $p2 >= 0){
        if($nums1[$p1] > $nums2[$p2]){
            $nums1[$p] = $nums1[$p1];
            $p1--;
        }else{
            $nums1[$p] = $nums2[$p2];
            $p2--;
        }
        $p--;
    }
    while($p2>=0){
        $nums1[$p] = $nums2[$p2];
        $p2--;
        $p--;
    }
}


http://www.kler.cn/a/517907.html

相关文章:

  • 【随手笔记】FFT资料整理
  • winfrom项目,引用EPPlus.dll实现将DataTable 中的数据保存到Excel文件
  • 【Salesforce】审批流程,代理登录 tips
  • 積分方程與簡單的泛函分析8.具連續對稱核的非齊次第II類弗雷德霍姆積分算子方程
  • 苍穹外卖-day10
  • docker使用笔记
  • 【Jave全栈】Java与JavaScript比较
  • Git客户端工具
  • Elasticsearch 性能测试工具 Loadgen 之 001——部署及应用详解
  • React进阶之高阶组件HOC、react hooks、自定义hooks
  • thingsBoard去除地图logo以及在ThingsBoard中实现 高德地图实时路线绘制,可实现车辆行驶状态监控
  • CPU 缓存基础知识
  • rust 自定义错误(十二)
  • 「全网最细 + 实战源码案例」设计模式——生成器模式
  • Pytest插件介绍:pytest-django
  • iOS 网络请求: Alamofire 结合 ObjectMapper 实现自动解析
  • 新型人工智能“黑帽”工具:GhostGPT带来的威胁与挑战
  • 深度学习中Batch Normalization(BN)原理、作用浅析
  • 食堂校园预约就餐小程序ssm+论文源码调试讲解
  • SpringAI 搭建智能体(二):搭建客服系统智能体
  • html新增Canvans
  • deep face cam 部署报错解决
  • 【游戏设计原理】81 - 功能可见性暗示
  • 量子编程语言:Qiskit 与 Cirq
  • OpenHarmonyOS 3.2 编译生成的hap和app文件的名称如何配置追加版本号?
  • Three城市引擎地图插件Geo-3d