LeetCode 283. 移动零

简介: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

题目

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]

说明:

必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。

解题思路

class Solution:
    def moveZeroes(self, nums: [int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        # lenN = len(nums)
        # i = 0
        # while i < lenN:
        #     if nums[i] == 0:
        #         nums.append(nums.pop(i))
        #         i -= 1#维持原来的序号
        #         lenN -= 1#核实的最后指证提前
        #     i += 1
        #双指针
        lenN = len(nums)
        left = 0 #检测当前元素
        right = 0 #统计已经通过的元素
        while right < lenN:
            if nums[left] == 0:
                nums[left:-1] = nums[left+1:]
                nums[-1] = 0
            else:
                left += 1
            right += 1


目录
相关文章
|
3月前
leetcode-472. 连接词
leetcode-472. 连接词
23 0
|
5天前
LeetCode
LeetCode
19 0
|
10月前
|
存储
leetcode:53.最大字序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
31 0
|
算法 Python
LeetCode 386. Lexicographical Numbers
给定一个整数 n, 返回从 1 到 n 的字典顺序。
57 0
LeetCode 386. Lexicographical Numbers
LeetCode 354. Russian Doll Envelopes
给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。
63 0
LeetCode 354. Russian Doll Envelopes
|
C++ Python
LeetCode 771. Jewels and Stones
LeetCode 771. Jewels and Stones
59 0
|
测试技术
一和零(LeetCode-474)
一和零(LeetCode-474)
110 0
一和零(LeetCode-474)
|
存储 算法 索引
LeetCode 27+LeetCode 35 讲解(姊妹篇)
LeetCode 27+LeetCode 35 讲解(姊妹篇)
68 0
leetcode第39题
对回溯法又有了更深的了解,一般的架构就是一个大的 for 循环,然后先 add,接着利用递归进行向前遍历,然后再 remove ,继续循环。而解法二的动态规划就是一定要找到递进的规则,开始的时候就想偏了,导致迟迟想不出来。
leetcode第39题
|
算法
leetcode第40题
会发现出现了很多重复的结果,就是因为没有跳过重复的 1。在求 opt [ 1 ] 的时候就变成了 [ [ 1 ],[ 1 ] ] 这样子,由于后边求的时候都是直接在原来每一个列表里加数字,所有后边都是加了两次了。
leetcode第40题