当前位置: 首页 > 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;
    }
}

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

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

相关文章:

  • 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 驱动的智慧大脑:打造企业动态知识库,开启高效管理新时代
  • C语言-7.函数
  • AI工具导航平台功能模块之混合分类器功能说明文档
  • 2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
  • 一、对iic类模块分析与使用
  • Matlab 大量接单
  • 初出茅庐的小李博客之按键驱动库使用
  • 论文写作指南
  • 自一致性(Self-Consistency)方法:通过多数投票提升模型生成质量(代码实现)
  • 软件工程---基于构件的软件工程
  • Hive大表和小表查询优化方案探索