算法: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++;
            }
        }
    }
相关推荐
Polaris北极星少女6 小时前
TRSV优化2
算法
较真的菜鸟6 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖6 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
代码游侠7 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
2301_763472467 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
qq_12498707538 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_8 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.8 小时前
Day06——权限认证-项目集成
java
瑶山8 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
abluckyboy8 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法