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

《双指针篇》---移动零

题目传送门 

这道题可以归类为 数组划分/数组分块 。

题目制定了一个规则,我们可以在这个规则下,将数组划分为若干个区间。

这道题让我们把所有非零元素移动到左边。所有零元素移动到右边。

将数组划分为:

左区间非0;

右区间:全0

解决这类我们使用双指针算法

class Solution {
        public void moveZeroes(int[] nums) {
            //定义left和right双指针。并在right<n的情况下循环。
            //如果nums[right] != 0则交换left和right指向的元素。
            //若等于零则right++。
            //保证left之前的数据非零。left指向第一个零。
            //right之后的数据待处理。
            int left = 0,right = 0;
            int n = nums.length;
            while(right < n){
                if(nums[right] != 0){
                    int temp = nums[left];
                    nums[left] = nums[right];
                    nums[right] = temp;
                    left++;
                }
                right++;
            }
        }
}


http://www.kler.cn/a/375795.html

相关文章:

  • 推荐一款非常好用的3d设计软件:LuBan 3D
  • Windows 命令提示符(cmd)中输入 mysql 并收到错误消息“MySQL不是内部或外部命令,也不是可运行的程序或批处理文件?
  • Python酷库之旅-第三方库Pandas(186)
  • 函数调用方法背后的原理
  • Cpp多态机制的深入理解(20)
  • 【数据结构】数组和向量
  • 「Mac畅玩鸿蒙与硬件20」鸿蒙UI组件篇10 - Canvas 组件自定义绘图
  • Spring Boot 与 Vue 共筑电影院选票新体验
  • Kong Gateway 指南
  • HTML 基础标签——链接标签 <a> 和 <iframe>
  • Javaweb 实验4 xml
  • 国内百家SRC平台
  • 20241102解决荣品PRO-RK3566开发板刷Rockchip原厂的Buildroot使用荣品的DTS出现
  • Vue基础知识——async指令、scope和样式穿透
  • Maven(20) 如何使用Maven进行版本管理?
  • npm入门教程18:npm发布npm包
  • CVPR2024:完全测试时域适应​​​​(Test-time Adaptation)的目标检测
  • [实战-12] flinkSql 时间属性
  • 互联网技术比游戏后端技术领先十年吗?
  • Android Pair
  • Yocto中的DISTRO和MACHINE的含义与机制
  • 使用 Java 实现从搜索引擎批量下载图片
  • 【STM32】内存管理
  • D55【python 接口自动化学习】- python基础之模块与标准库
  • solidity中的Error和Modifier详解
  • 构建高效信息学科平台:Spring Boot实践