当前位置: 首页 > 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://www.lryc.cn/news/589216.html

相关文章:

  • 记录一条面试sql题目
  • 《每日AI-人工智能-编程日报》--2025年7月15日
  • vue实现el-table-column中自定义label
  • 对象数组列表转成树形结构--树形结构转成列表(处理菜单)
  • 牛客:HJ21 简单密码[华为机考][哈希]
  • T8332AD这是一款多拓扑芯片质量很硬朗?
  • 【jvm|基本原理】第四天
  • 力扣 hot100 Day45
  • LeetCode Hot100 【1.两数之和、2.两数相加、3.无重复字符的最长子串】
  • 拼多多笔试题目一
  • 人机协作系列(四)AI编程的下一个范式革命——看Factory AI如何重构软件工程?
  • 力扣——1071. 字符串的最大公因子
  • 基于Alpine构建MySQL镜像
  • sublime如何支持换行替换换行
  • PHP安全漏洞深度解析:文件包含与SSRF攻击的攻防实战
  • Azure FXmsv2 系列与 Azure FXmdsv2 系列虚拟机正式发布
  • 606. 二叉树创建字符串
  • Java全栈工程师面试实录:从电商支付到AI大模型的应用场景与技术栈解析
  • Android 获取 UserAgent (UA) 的三种方式深度解析:差异、风险与最佳实践
  • C++中的模板参数 vs 函数参数:编译期与运行期的分界线
  • X 射线探伤证考试核心:辐射安全基础知识点梳理
  • 如何正确分配及设置香港站群服务器IP?
  • 创客匠人:创始人 IP 的破局思维,重构知识变现的深层逻辑
  • LeetCode--46.全排列
  • 梳理Bean的创建流程
  • keeplived双击热备配置
  • 【高并发服务器】多路复用的总结 eventfd timerfd
  • 在Autodl服务器中使用VNC建立图形界面
  • JavaBean
  • 【亲测有效】ubuntu20.04服务器新建用户+vnc配置教程