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

【每日刷题】移动零

283. 移动零 - 力扣(LeetCode)

方法一

自己的AC代码,极端条件下(全0)需要遍历两次。第一个循环把所有不为0的数移到数组前端,第二个循环再把后面的数清零。

class Solution {public void moveZeroes(int[] nums) {int pos = 0;int len = nums.length;for(int i = 0; i < len; i++) {if(nums[i] != 0) {nums[pos++] = nums[i];}}while(pos < len) {nums[pos] = 0;pos++;}}
}

方法二

其实就是双指针, pos 对应左指针, i 对应右指针,只需要遍历一次。如果 nums[i] 为0,就只有 i 加一,如果 nums[i] 不为0, i 和 pos 都加一,并且交换位置。

该方法可以保证:①左指针左边均为非零数;②右指针左边直到左指针处均为零。所以每次交换都是将左指针的零与右指针的非零数交换。

class Solution {public void moveZeroes(int[] nums) {int len = nums.length;int pos = 0;for(int i = 0; i < len; i++) {if(nums[i] != 0) {int tmp = nums[i];nums[i] = nums[pos];nums[pos] = tmp;pos++;}}}
}

 其它

从“面试经典150”换到了“hot100”,把重合题目标记了一下。后面大概每天周一到周五各做3道题,思路只简单记录,之后的题解都会比较简单,也不包含Python代码了。希望暑假能刷完,暑假结束回学校后顺利实习。

http://www.dtcms.com/a/278786.html

相关文章:

  • LabVIEW-Origin 船模数据处理系统
  • 【爬虫】Python实现爬取京东商品信息(超详细)
  • 期权和期货的区别主要是什么?
  • [论文阅读] 人工智能 | 用大型语言模型玩转多语言主观性检测:CheckThat! 2025赛事中的亮眼表现
  • Unity3D + VS2022连接雷电模拟器调试
  • 【PTA数据结构 | C语言版】字符串连接操作(不限长)
  • 分布式一致性协议
  • Android动画:属性动画以及实现点击图标缩放的动画效果
  • Relocations in generic ELF (EM: 40)
  • “国乙黑月光”指的是谁?
  • YOLOv11调参指南
  • Maven 依赖原则和依赖冲突
  • Docker入门指南(超详细)
  • Jetpack Compose 重组陷阱:一个“乌龙”带来的启示
  • yolo8+声纹识别(实时字幕)
  • 从“炼丹”到“流水线”——如何用Prompt Engineering把LLM微调成本打下来?
  • 前端缓存优化全景指南:从HTTP到应用层的性能加速实践
  • 学习软件测试的第十五天
  • PHP password_verify() 函数
  • 设备巡检系统的主要用途
  • Java 大视界 -- 基于 Java 的大数据可视化在城市地下管网管理与风险预警中的应用
  • 2025-07-14如何批量下载behance网站里的图片?
  • 神经网络项目--基于FPGA的AI简易项目(1-9图片数字识别)
  • 如何基于FFMPEG 实现视频推拉流
  • liunx常用命令(二)
  • SLAM 前端
  • 一文读懂循环神经网络(RNN)—语言模型+n元语法(1)
  • LightGBM(Light Gradient Boosting Machine)
  • 3分钟搭建自动签到打卡RPA程序:验证码自动识别
  • ImportError: DLL load failed while importing _base: 找不到指定的程序。