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

LeetCode|Day13|88. 合并两个有序数组|Python刷题笔记

LeetCode|Day13|88. 合并两个有序数组|Python刷题笔记

🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>


📌 题目简介

题号:88. 合并两个有序数组
难度:简单
题目链接:点击跳转


🧾 题目描述(简要)

给你两个按非递减顺序排列的整数数组 nums1nums2,以及两个整数 mn,分别表示 nums1nums2 中的元素数目。
请你原地合并 nums2nums1 中,使得合并后的数组同样按非递减顺序排列。

注意:nums1 的长度为 m + n,其中后 n 个元素为 0,是预留空间。

示例:

输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]

💡 解法:双指针从后向前合并

class Solution:def merge(self, nums1, m, nums2, n):i, j, k = m - 1, n - 1, m + n - 1while i >= 0 and j >= 0:if nums1[i] > nums2[j]:nums1[k] = nums1[i]i -= 1else:nums1[k] = nums2[j]j -= 1k -= 1nums1[:j+1] = nums2[:j+1]

🧠 我的理解

  • 从数组尾部开始插入可以避免覆盖未处理的元素;
  • 指针 i 指向 nums1 的有效尾部,j 指向 nums2 尾部;
  • 每次选出较大的数放到 k 指针位置;
  • nums2 还有剩余,直接填充到前面。

📌 基础语法复习:

  • nums1[:j+1] = nums2[:j+1]:切片赋值;
  • while i >= 0 and j >= 0:双指针条件;
  • 原地修改数组技巧。

📌 返回总目录:点我回目录


文章转载自:
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://www.dtcms.com/a/280085.html

相关文章:

  • GaussDB 数据库架构师修炼(四) 备份容量估算
  • SQLite技术架构解析,适用场景有哪些?
  • 邮件伪造漏洞
  • 基于 AI 的大前端安全态势感知与应急响应体系建设
  • 【SVN】设置忽略规则
  • Python Docker SDK库详解:从入门到实战
  • el-table中type=“selection“选中数据如何回显
  • 半导体制造流程深度解析:外观缺陷检测的AI化路径与实践
  • Java 栈和队列
  • 3d max 的快捷键
  • 极限状态下函数开根号的计算理解(含示意图)
  • Flink双流实时对账
  • CPU寄存器、进程上下文与Linux O(1)调度器原理
  • Jfinal+SQLite java工具类复制mysql表数据到 *.sqlite
  • 基于 vue+Cesium 实现军事标绘之钳击箭头绘制实战
  • C++-linux系统编程 8.进程(三)孤儿进程、僵尸进程与进程回收
  • Oracle学习专栏(五):性能优化
  • 适用于Windows系统截图工具
  • 通用综合文字识别联动 MES 系统:OCR 是数据流通的核心
  • 【算法-BFS 解决最短路问题】探索BFS在图论中的应用:最短路径问题的高效解法
  • JVM——JVM垃圾回收调优的主要目的是什么?
  • 行为模式-状态模式
  • C++ -- STL-- List
  • 分布式通信框架 - JGroups
  • 从零开始的云计算生活——第三十二天,四面楚歌,HAProxy负载均衡
  • 数据怎么分层?从ODS、DW、ADS三大层一一拆解!
  • 智慧园区:激活城市活力的数字化引擎
  • 【colab 使用uv创建一个新的python版本运行】
  • mac上的app如何自动分类
  • 22-C#的委托简单使用-2