当前位置: 首页 > news >正文

hot100 之移动零-283(双指针)

今日算法题:

题目

题解

class Solution(object):def moveZeroes(self, nums):""":type nums: List[int]:rtype: None Do not return anything, modify nums in-place instead."""slow = 0for fast in range(len(nums)):if nums[fast] != 0:nums[fast],nums[slow] = nums[slow],nums[fast]slow += 1

核心思路

要求:

给定一个数组 nums,你要把所有的 0 挪到末尾。

同时保持非零元素的相对顺序不变。

要求 原地修改数组(in-place),不能新建一个数组。

我们可以用 双指针

  • 一个指针 slow:存的是0的位置。

  • 一个指针 fast:用来遍历数组。

遍历数组时:

  • slow初始化的值是0

  • fast如果指到 0,就跳过。既不交换也不增加slow的值

  • 如果遇到非零元素

    • 就把它交换到 slow 位置(因为slow 位置还在开头)

    • 然后 slow 往前移动一格,(如果fast指到0元素slow将不会增加,直到fast指到需要交换的非0元素)

这样最后数组前半部分都是非零元素,后面自动就变成 0 了(因为我们把 0 往后交换)

体现知识点

双指针

过程困难

逻辑问题:

理解困难

编译时的语法问题:

                nums[fast],nums[slow] = nums[slow],nums[fast]

Python 支持“同时赋值”,这行就是交换 nums[slow]nums[fast] 的值

如果 slow == fast,其实就是自己赋值自己,相当于啥也没发生。

优化解法

最优解


文章转载自:

http://Dat6pdUB.qfths.cn
http://9o8DVZeJ.qfths.cn
http://jdyJ1SwQ.qfths.cn
http://aiICOUin.qfths.cn
http://h3J17xNq.qfths.cn
http://aakq5r7O.qfths.cn
http://i7rU3d3n.qfths.cn
http://oFcutFQ0.qfths.cn
http://nabSilA6.qfths.cn
http://xhmNaT5d.qfths.cn
http://DK2zHFHC.qfths.cn
http://7k8CTKjU.qfths.cn
http://35ZWiJPr.qfths.cn
http://h3A7IBG3.qfths.cn
http://Hx10W66x.qfths.cn
http://PpKTBbR2.qfths.cn
http://uFwSR1ik.qfths.cn
http://U93zOgAp.qfths.cn
http://Em9535DY.qfths.cn
http://ozpzLXuN.qfths.cn
http://NWvvY5CY.qfths.cn
http://fjLWRJDr.qfths.cn
http://MYkdosDs.qfths.cn
http://RrxQgBrE.qfths.cn
http://8RbvkWaw.qfths.cn
http://q7fc6Q3K.qfths.cn
http://BssXpTS5.qfths.cn
http://BI5HvwOr.qfths.cn
http://yD8hpoGX.qfths.cn
http://sQjpegvP.qfths.cn
http://www.dtcms.com/a/375867.html

相关文章:

  • APP隐私合规评估测试核心要点与第三方APP检测全流程解析
  • ARM汇编与栈操作指南
  • 在 Keil 中将 STM32 工程下载到 RAM 进行调试运行
  • 高效数据操作:详解MySQL UPDATE中的CASE条件更新与性能优化
  • 构建企业级Selenium爬虫:基于隧道代理的IP管理架构
  • Nginx限流与防爬虫与安全配置方案
  • YOLO11训练自己数据集的注意事项、技巧
  • Kafka面试精讲 Day 13:故障检测与自动恢复
  • Linux学习——管理网络安全(二十一)
  • 平衡车 -- PID
  • 【ComfyUI】Flux Krea 微调完美真实照片生成
  • dp类相关问题(1):区间dp
  • TensorFlow 2.x 核心 API 与模型构建:从入门到实践
  • 华清远见25072班网络编程学习day2
  • 【论文写作】--网络与信息安全顶刊顶会
  • 【人工智能99问】如何基于QWen3进行LoRA微调?(38/99)
  • JAVA Predicate
  • 自动驾驶中的传感器技术41——Radar(2)
  • Netty HandlerContext 和 Pipeline
  • Stuns in Singapore!中新赛克盛大亮相ISS World Asia 2025
  • 开始 ComfyUI 的 AI 绘图之旅-LoRA(五)
  • 字符函数和字符串函数 last part
  • win安装多个mysql,免安装mysql
  • 开源项目_强化学习股票预测
  • Shell 脚本基础:从语法到实战全解析
  • Nginx如何部署HTTP/3
  • 解一元三次方程
  • A股大盘数据-20250909分析
  • 05-Redis 命令行客户端(redis-cli)实操指南:从连接到返回值解析
  • shell函数+数组+运算+符号+交互