集团网站建设定制网站建设,盟威软件快速开发平台,孝感做网站公司,开发一个个人网站LeetCode#xff5c;Day13#xff5c;88. 合并两个有序数组#xff5c;Python刷题笔记
#x1f5d3;️ 本文属于【LeetCode 简单题百日计划】系列 #x1f449; 点击查看系列总目录 #x1f4cc; 题目简介
题号#xff1a;88. 合并两个有序数组 难度#xf…LeetCodeDay1388. 合并两个有序数组Python刷题笔记
️ 本文属于【LeetCode 简单题百日计划】系列 点击查看系列总目录 题目简介
题号88. 合并两个有序数组 难度简单 题目链接点击跳转 题目描述简要
给你两个按非递减顺序排列的整数数组 nums1 和 nums2以及两个整数 m 和 n分别表示 nums1 和 nums2 中的元素数目。 请你原地合并 nums2 到 nums1 中使得合并后的数组同样按非递减顺序排列。
注意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[:j1] nums2[:j1]我的理解
从数组尾部开始插入可以避免覆盖未处理的元素指针 i 指向 nums1 的有效尾部j 指向 nums2 尾部每次选出较大的数放到 k 指针位置若 nums2 还有剩余直接填充到前面。 基础语法复习
nums1[:j1] nums2[:j1]切片赋值while i 0 and j 0双指针条件原地修改数组技巧。 返回总目录点我回目录