算法: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++;
            }
        }
    }
相关推荐
IT探索3 小时前
Linux 查找文件指令总结
linux·算法
曹牧3 小时前
文档格式:OFD
java
豆角焖肉4 小时前
Maven进阶与搭建私服
java·maven
Lumos1864 小时前
51单片机从零到实战(完结)——后续学习路线建议
算法
稚南城才子,乌衣巷风流4 小时前
DFS序详解:原理、应用与实现
算法·深度优先·图论
稚南城才子,乌衣巷风流4 小时前
动态树(Dynamic Tree)数据结构详解
数据结构·算法
大不点wow4 小时前
Java序列化与反序列化:让对象走出JVM
java·开发语言·jvm
噢,我明白了4 小时前
Java中日期和字符串的处理
java·开发语言·日期
dkbnull4 小时前
Spring Boot请求处理组件对比详解
java·spring boot
jun_bai4 小时前
Orthanc服务器使用java上传dicom影像文件
java·运维·服务器