算法: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++;
            }
        }
    }
相关推荐
2301_81016095几秒前
C++与物联网开发
开发语言·c++·算法
sxlishaobin3 分钟前
Java I/O 模型详解:BIO、NIO、AIO
java·开发语言·nio
cm6543204 分钟前
基于C++的操作系统开发
开发语言·c++·算法
ArturiaZ7 分钟前
【day57】
开发语言·c++·算法
CoovallyAIHub8 分钟前
Energies | 8版YOLO对8版Transformer实测光伏缺陷检测,RF-DETR-Small综合胜出
深度学习·算法·计算机视觉
彭于晏Yan9 分钟前
Spring AI(二):入门使用
java·spring boot·spring·ai
Emberone16 分钟前
排序:万物皆有序
算法·排序算法
其实秋天的枫18 分钟前
2025年12月英语六级真题及答案解析完整版(第一、二、三套全PDF)
经验分享·算法
有一个好名字23 分钟前
vibe codeing 开发流程
java
2401_8747325324 分钟前
C++并发编程中的死锁避免
开发语言·c++·算法