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

Leetcode 算法题 88. 合并两个有序数组

起因, 目的:

  • 做题的过程中,不能听歌, 减少干扰。
  • 太简单,没意思。太难太复杂,容易放弃。 如何找到难度合适的题?

题目来源: 88. 合并两个有序数组

参考题解: 官方题解,方法二:双指针

继续做双指针。

def solu(nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3):
    done = []
    # 定义2个指针,从0开始。
    p1 = 0
    p2 = 0

    # while 这个条件,不太好理解。
    # 表示, 只要有一个还没处理完, 就继续处理, 直到2个列表都处理完。
    while p1 < m or p2 < n:

        # 下面这2个是边界条件。
        if p1 == m:  # nums1 已经处理完了, 只能取 nums2
            done.append(nums2[p2])
            p2 += 1

        elif p2 == n: # nums2 已经处理完了, 只能取 nums1
            done.append(nums1[p1])
            p1 += 1

        # 比较大小
        elif nums1[p1]  <  nums2[p2]:
            done.append(nums1[p1])
            p1 += 1
        else:
            done.append(nums2[p2])
            p2 += 1

    # 最后直接修改 nums1
    nums1[:] = done

print(solu( nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3  ))


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

相关文章:

  • 802.3 两种格式
  • Redis 10章——集群(cluster)
  • 服务器A到服务器B免密登录
  • 【拒绝算法PUA】LeetCode 1287. 有序数组中出现次数超过25%的元素
  • maven使用默认settings.xml配置时,Idea基于pom.xml更新依赖时报错,有些组件下载时连接超时
  • 解锁JavaScript新姿势:Set数据结构深度解析
  • Unity Shader示例 6: 卡渲基础 - 描边 + 着色
  • 【学术投稿-第四届智能电网和绿色能源国际学术会议(ICSGGE 2025)】CSS基本选择器详解:掌握基础,轻松布局网页
  • 深入剖析 Python 爬虫:淘宝商品详情数据抓取
  • 什么是RDD以及它在Spark中的作用
  • 地基Spring中bean生命周期和设计模式
  • 为AI聊天工具添加一个知识系统 之108 详细设计之49 相提并论的三者、三位一体Triad和圣灵倒三角
  • Java爬虫获取1688商品搜索API接口的实现指南
  • 案例-05.部门管理-新增
  • 【Prometheus】prometheus结合domain_exporter实现域名监控
  • Qt——静态函数中发送信号方法总结(不需要通过类内部信号与槽实现,关键是清楚你发送的信号源自哪个对象)
  • 《代码随想录》刷题笔记——回溯篇【java实现】
  • 基于深度学习的半导体测试优化与产能提升策略研究
  • 人形机器人 - 仿生机器人核心技术与大小脑
  • 什么是Scaling Laws(缩放定律);DeepSeek的Scaling Laws