【力扣100】4.移动零

题目链接

我的题解:

python 复制代码
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        # 思路是先计算共有几个0,然后remove几次,再末位加几个0
        count=0
        for i in nums:
            if i ==0:
                count=count+1
        for j in range(0,count):
            nums.remove(0)
            nums.append(0)

我觉得这个方法太蠢了

想一下双指针的方法

python 复制代码
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        # fast指针遇见0向后挪
        # slow指针遇见0跟fast交换
        fast=0
        slow=0
        for fast in range(len(nums)):
            if nums[fast]==0:
                fast+=1
            else:
                nums[slow]=nums[fast]
                fast+=1
                slow+=1
        for i in range(slow,len(nums)):
            nums[i]=0

双指针,最后补0

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

双指针,快指针指到非0,就交换,因为慢指针都会指到0

相关推荐
程序员泠零澪回家种桔子1 分钟前
OpenManus开源自主规划智能体解析
人工智能·后端·算法
请注意这个女生叫小美3 分钟前
C语言 实例20 25
c语言·开发语言·算法
好学且牛逼的马4 分钟前
【Hot100|22-LeetCode 206. 反转链表 - 完整解法详解】
算法·leetcode·矩阵
hans汉斯7 分钟前
国产生成式人工智能解决物理问题能力研究——以“智谱AI”、“讯飞星火认知大模型”、“天工”、“360智脑”、“文心一言”为例
大数据·人工智能·算法·aigc·文心一言·汉斯出版社·天工
v_for_van10 分钟前
力扣刷题记录3(无算法背景,纯C语言)
c语言·算法·leetcode
ValhallaCoder14 分钟前
hot100-矩阵
数据结构·python·算法·矩阵
散峰而望15 分钟前
【基础算法】穷举的艺术:在可能性森林中寻找答案
开发语言·数据结构·c++·算法·随机森林·github·动态规划
心.c17 分钟前
Vue3+Node.js实现文件上传分片上传和断点续传【详细教程】
前端·javascript·vue.js·算法·node.js·哈希算法
散峰而望17 分钟前
【基础算法】算法的“预谋”:前缀和如何改变游戏规则
开发语言·数据结构·c++·算法·github·动态规划·推荐算法
We་ct17 分钟前
LeetCode 48. 旋转图像:原地旋转最优解法
前端·算法·leetcode·typescript