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

算法题001——移动零

移动零

力扣——移动零点击链接即可跳转
在这里插入图片描述

这道题的数组被划分为两个区间,前一个区间为 非零元素,而后一个指针是 零元素
我们运用双指针,先定义两个指针,分别为 dest 和 cur , cur用来遍历整个数组,而 dest 表示我们已经处理完的数组的最后一个位置。
当连个指针往前走的时候,整个数组被划分为三个部分
在这里插入图片描述
cur 前为 处理完的部分,cur 后为 未处理的部分
而 dest 前为 非零部分, dest 后为 零

首先,定义 cur 从0 位置开始遍历,此时,并没有处理完的部分,所以定义 dest = -1;

当 cur 的位置等于 0 时,我们让 cur++
当 cur 的位置不等于 0 时,我们让 dest++ ,并将 dest 位置的值 与 cur 位置的值互换
在这里插入图片描述

首先,定义 cur 从0 位置开始遍历,此时,并没有处理完的部分,所以定义 dest = -1;

cur 遍历的时候会遇到两种情况

  • 当 cur 的位置等于 0
    不做任何处理
  • 当 cur 的位置不等于 0
    遇到非零元素,我们想让非零元素到最左边,此时我们让 dest++ ,并将 dest 位置的值 与 cur 位置的值互换即可实现

这就是这道题的原理,下面是代码实现

class Solution {
    public void moveZeroes(int[] nums) {
        for(int cur = 0,dest = -1;cur < nums.length;cur++){
            if(nums[cur] != 0){
                dest++;
                swap(nums,dest,cur);
            }
        }
    }

    private void swap(int[] array,int i,int j){
        int tmp = array[i];
        array[i] = array[j];
        array[j] = tmp;
    }
}

觉得有用的给我点个赞,有用还不点赞的击毙处理,承受仔仔的子弹吧
在这里插入图片描述

相关文章:

  • Python接口测试实践:参数化测试、数据驱动测试和断言的使用
  • DeepSeek 助力 Vue3 开发:打造丝滑的悬浮按钮(Floating Action Button)
  • 【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图
  • 电商系统集成新思路:如何通过API实现业务效率300%跃升
  • Unity插件-Mirror使用方法(二)组件介绍
  • 【架构设计】奥卡姆剃刀:编程、设计和业务规划中的“极简主义”思维
  • linux 离线安装redis
  • python中单例模式应用
  • DeepSeek掘金——DeepSeek R1驱动的PDF机器人
  • Linux:进程概念
  • 知识库功能测试难点
  • Windows PicPick Professional-v7.3.2-中文版
  • 植物大战僵尸金铲铲版 v1.1.6(windows+安卓)
  • DeepSeek使用操作指南:开发人员实战手册
  • WPF10-绑定属性
  • 近似最近邻(ANN)算法库实战
  • 从统计学视角看机器学习的训练与推理
  • 文字滚动效果组件和按钮组件
  • 第一章 “流程引擎启蒙课”
  • AI 驱动的智慧大脑:打造企业动态知识库,开启高效管理新时代
  • wordpress 导入用户/seo外包公司哪家专业
  • 酒店房产网站建设/刚刚刚刚刚刚好痛
  • 南宁江南区网站制作价格/百度客服电话4001056
  • 网站进入之前动态效果/atp最新排名
  • 哪一个做网站模版好用的/黄冈网站推广软件免费下载
  • 淄博网站建设公司/站长之家关键词查询