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

相关文章:

  • MySQL数学函数
  • HALCON+PCL混合编程
  • 从抽象函数到可计算导数 ——SymPy 中占位、求导、代入的完整闭环
  • JVM——编译执行于解释执行的区别是什么?JVM使用哪种方式?
  • K型热电偶电动势以及温度对照表
  • 从基础到进阶:MyBatis-Plus 分页查询封神指南
  • BPE(字节对编码)和WordPiece 是什么
  • [AI-video] Web UI | Streamlit(py to web) | 应用配置config.toml
  • Android 图片压缩
  • Spring应用抛出NoHandlerFoundException、全局异常处理、日志级别
  • 前端开发数据缓存方案详解
  • 1.easypan-登录注册
  • git起步
  • Jfinal+SQLite java工具类复制mysql表数据到 *.sqlite
  • 同济医院R语言训练营第三期开讲!上交大张维拓老师主讲
  • 2025最新国产用例管理工具评测:Gitee Test、禅道、蓝凌测试、TestOps 哪家更懂研发协同?
  • 希尔排序:突破传统排序的边界
  • 22.计算指定范围内数字的幂次和
  • StampedLock分析
  • 基于cornerstone3D的dicom影像浏览器 第二章,初始化页面结构
  • 亚矩阵云手机:破解 Yandex 广告平台多账号风控难题的利器
  • 跨平台游戏引擎 Axmol-2.7.1 发布
  • APP端定位实现(uniapp Vue3)(腾讯地图)
  • Ext系列文件系统知识点
  • Linux进程信号--1、信号产生
  • 时间复杂度和空间复杂度是衡量一个算法好坏的标准
  • A*算法详解
  • 9、线程理论1
  • eVTOL分布式电推进(DEP)适航审定探究
  • redisson tryLock