算法:1.移动零

双指针

283. 移动零 - 力扣(LeetCode)

解法思路:,设计cur和dest两个指针。使用cur扫描整个数组,将数组划分为三个区域,0,dest为非零区,dest+1,cur为零区,cur,n-1为待处理区。

从第一次判断处理或不处理到最后完成0与非0值的分区都满足解法思路。

代码展示:

java 复制代码
public void moveZeroes(int[] nums){
        int cur = 0;
        int dest = -1;
        while(cur<nums.length){
            if(nums[cur]!=0){
                int tmp = nums[dest+1];
                nums[dest+1]=nums[cur];
                nums[cur]=tmp;
                cur++;
                dest++;
            }else{
                cur++;
            }
        }
    }
相关推荐
考虑考虑1 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯2 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路6 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
先吃饱再说7 小时前
判断回文字符串,从一行代码到双指针优化
算法
像我这样帅的人丶你还9 小时前
Java 后端详解(五):Redis 缓存
java·后端·全栈
黄敬峰10 小时前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法
plainGeekDev11 小时前
GreenDAO → Room
android·java·kotlin
得物技术11 小时前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
AI小老六14 小时前
SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent
后端·算法·ai编程