栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python Leetcode

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Leetcode

1、283. 移动零 方法一:双指针

使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        left, n = 0, len(nums)
        
        for i in range(n):
            if nums[i]:
                nums[i], nums[left] = nums[left], nums[i]
                left += 1

        return nums
方法二:pop,append
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        # 用 for 的时候一般不变动元素内容,以下方法有错,改用 while 循环。
        # for i in range(len(nums)):
        #     if nums[i] == 0:
        #         nums.pop(i)
        #         nums.append(0)
        # return nums
        # 如:[0,0,1] 输出 [0,1,0]

        i, j = 0, len(nums)-1
        while i < j:
            if nums[i] == 0:
                nums.pop(i)
                nums.append(0)
                j -= 1
            else:
                i += 1
        return nums
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302538.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号