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

【力扣打卡系列】移动零(双指针)

坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day19

移动零(双指针)
  • 题目描述
    在这里插入图片描述
  • 解题思路
    • p和q同时从起点移动,p每次都++,q仅在交换时++,p遇到非零数时与p值交换
    • !!因为如果左指针位置开始不为0的话,会和右指针同步一起移动,直到左指针到达第一个为0的位置,左指针就会停留在第一个为0的位置,而右指针则停留在这个位置右边第一个不为0的位置, 此后就是交换,把非零元素往左边换,把零元素往右边换,左右两指针控制着零元素的边界。遇到第一个0的时候,就会停留在第一个0的位置了,没遇到的时候左右指针指向的是相同的位置,注意代码里j++的位置,没遇到0的时候,左右指针都会往右移动的,遇到0的时候只有右指针移动,所以左指针就停留在0了
  • 代码参考
func moveZeroes(nums []int)  {p,q := 0,0tmp := 0for p<len(nums){if nums[p] != 0{tmp = nums[p]nums[p] = nums[q]nums[q] = tmpq++}p++}
}
http://www.lryc.cn/news/477627.html

相关文章:

  • 无源元器件-电容选型参数总结
  • Linux下的socket编程
  • 【算法】Floyd多源最短路径算法
  • iOS SmartCodable 替换 HandyJSON 适配记录
  • 使用 axios 拦截器实现请求和响应的统一处理(附常见面试题)
  • 阿里 Sentinel
  • 【点云网络】 pointnet 和 pointnet++
  • .net core mvc 控制器中页面跳转
  • 大学适合学C语言还是Python?
  • 跳表原理课堂笔记
  • Windows系统使用OpenSSL生成自签名证书
  • 定位new的表达式
  • 矩阵特殊打印方式
  • OCC 拟合的平面转换为有界平面
  • Nginx性能优化的几个方法
  • Unity性能优化5【物理篇】
  • 我的工具列表
  • 985研一学习日记 - 2024.11.5
  • Vue2 与 Vue3 的区别
  • 虚拟现实技术课程开发思路
  • triangle_area_calculators库发布
  • ClickHouse数据库SSL配置和SSL连接测试
  • 云渲染与汽车CGI图像技术优势和劣势
  • 信号与噪声分析——第二节:随机变量的统计特征
  • PHP网络爬虫常见的反爬策略
  • java java.util.Scanner设置编码
  • 小菜家教平台(二):基于SpringBoot+Vue打造一站式学习管理系统
  • Android AndroidManifest 文件内标签及属性
  • 修改sql server 数据库的排序规则Chinese_PRC_CI_AS(字符集+排序)
  • 【ChatGPT】让ChatGPT在回答中附带参考文献与来源