搜索
简帛阁>技术文章>11.19 每日一题 283. 移动零

11.19 每日一题 283. 移动零

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

示例:

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

说明:

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

通过次数247,393 | 提交次数392,424

代码实现

  • 栈方法
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        for i in range(nums.count(0)):
            nums.remove(0)
            nums.append(0)
  • 遍历修改法
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        c = 0
        for i in nums:
            if i != 0:
                nums[c] = i
                c += 1
        for i in range(c, len(nums)):
            nums[i] = 0
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/move-zeroes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非元素的相对顺序。示例:输入:[0,1,0,3,12]输出:[1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非元素的相对顺序。示例:输入:[0,1,0,3,12]输出:[1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组
题目:https://leetcodecncom/problems/movezeroes/我的想法:使用一个慢指针和一个快指针,慢指针则是用来寻找数组中“0”的位置,快指针用来遍历整个数组以找到不为“
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非元素的相对顺序。示例:输入:[0,1,0,3,12]输出:[1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组
查看原题解思路将right赋值为numslength1,代表当前连续0开始的位置lef赋值为0表示当前数组扫描的位置从左到右扫描数组,如果当前项是0则将从数组当前项到连续0开始位置之间的数组项都向
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非元素的相对顺序。示例:输入:[0,1,0,3,12]输出:[1,3,12,0,0]用双指针,时间复杂度是O(n),空间复杂度O
22:(1)只出现一次的最大数字根据下表编写一个SQL查询来报告最大的单一数字。如果不存在单一数字,查询需报告null。解题思路:用自查询把只是单一的数字查询出来,然后用max函数即可。SELEC
283移动知识点:数组;双指针;题目描述给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非元素的相对顺序。示例输入:[0,1,0,3,12]输出:[1,3,12,0,0]说明必
不能因为每次做一道算法题就开个随笔,故开个记录贴。坚持就是胜利!IT:https://blogcsdnnet/hackbuteer1/category_9261019html初期我不知道该怎么讲解,所
刚开始我把这道题当作了递归来做,所以我在每个节点(可种)设置了两种策略:选择当前点/选择下一个节点。递归栈溢出。后来根据题解,发现确实是应该用贪心做,原因是:只要当前节点选择种花,最后能种的数量一定不