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

每日一题---移动零

一、题目链接:283. 移动零 - 力扣(LeetCode)

二、解题思路 

我们可以用一个right指针来扫描整个数组,然后用一个left指针来记录非零序列的最后一个位置,这样的话,在遍历期间我们可以将数组分为两个部分,第一个部分是[0,left],这一区间全为非零元素,第二个部分是[left+1,right],这一部分全是0,第三个部分是[right+1,nums.length-1],这一部分是还未扫描到的区间 。具体步骤如下:

1.定义两个变量left=-1,right=0。

2.用循环遍历数组,当right指向的数组不为0时,left++,交换left和right指向的元素,然后right++

3、当right指向的数组为0时,依旧right++

三、代码实现 

class Solution {public void moveZeroes(int[] nums) {int left=-1,right=0;while(right<nums.length){if(nums[right]!=0){left++;swap(nums,right,left);}right++;}}public static void swap(int[] nums,int i,int j){int tmp=nums[i];nums[i]=nums[j];nums[j]=tmp;}
}

相关文章:

  • C# 点击导入,将需要的参数传递到弹窗的页面
  • CTF--MD5
  • sqlite3的API以及命令行
  • RESTful API 全面指南:设计、原理与实践
  • Unity-微信截图功能简单复刻-03绘制空心矩形
  • 【软件工程】用飞书画各种图(流程图,架构图···)
  • k8s教程3:Kubernetes应用的部署和管理
  • Unity-微信截图功能简单复刻-02屏幕采样
  • 12芯束装光纤不同包层线颜色之间的排列顺序
  • Vue3后代传祖先组件通讯方法
  • 04.Spring 框架注解体系详解
  • L2-006 树的遍历
  • Logisim数字逻辑实训——寄存器设计与应用
  • 【datawhaleAI春训营第一期笔记】AI+航空安全
  • openbmb/MiniCPM-V-2_6 和 AIDC-AI/Ovis2-1B 的网络结构体对比
  • 专著出版能为评职助力吗?
  • IPTV电视信息发布直播点播系统:营造数字化个性化融合化多媒体IPTV电视信息发布平台
  • 数据结构学习笔记 :二叉搜索树与高效查找算法详解
  • 认知觉醒是什么? 如何做到 ? ( 持续更新ing )
  • FairMOT算法详解
  • 人民网评:“中国传递爱而不是关税”
  • 姜仁华任中国水稻研究所所长,胡培松院士卸任
  • A股和港股市场小幅走强,“地产链”相关股票爆发
  • 汪文斌人民日报撰文:让中柬友好合作结出更加丰硕的成果
  • 集体断电+差点翻船!这夜的大巴黎,很熟悉
  • 张家界将“戴帽”:连续5年亏损,预重整期延长三个月