写点什么

《LeetCode 刷题》数组与队列

作者:IT蜗壳-Tango
  • 2022 年 1 月 05 日
  • 本文字数:347 字

    阅读完需:约 1 分钟

如何实现一个变长数组?

  • 支持索引与随机访问

  • 分配多长的连续空间

  • 空间不够用了怎么办

  • 空间剩余很多如何回收

88. 合并两个有序数组

class Solution:    def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:        """        Do not return anything, modify nums1 in-place instead.        """        i = m -1        j = n -1        for k in range(m+n-1, -1, -1):            if j < 0 or ( i >= 0 and nums1[i] >= nums2[j]):                nums1[k] = nums1[i]                i = i -1            else:                nums1[k] = nums2[j]                j = j -1
复制代码

思路,利用列表的扩容原理,从右侧开始遍历,然后比较两个列表的元素大小,并进行相应的替换。需要注意的是不要有越界的情况发生。

用户头像

一个日语专业的程序猿。 2017.09.10 加入

【坐标】无锡 【软件技能】Java,C#,Python 【爱好】炉石传说 【称号】InfoQ年度人气作者,Intel OpenVINO领航者联盟成员 【B站】https://space.bilibili.com/397260706/ 【个人站】www.it-worker.club

评论

发布
暂无评论
《LeetCode刷题》数组与队列