当前位置: 首页 > 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算法详解
  • 两部门发布外汇领域行刑反向衔接案例,织密金融安全“防护网”
  • 美联储宣布维持基准利率不变
  • 外交部介绍中国赞比亚共同举办人工智能能力建设主题活动情况
  • 自然资源部印发地理信息数据分类分级指南
  • 民生访谈|摆摊设点、公园搭帐篷、行道树飘絮,管理难题怎么解?
  • 胖东来关闭官网内容清空?工作人员:后台维护升级