算法1.0

283. 移动零 - 力扣(LeetCode)

双指针

1.0 双指针的作用

cur:从左到右遍历数组 dest:已处理的区间内,非零元素的最后一个位置

cur把数组划分为两部分 未扫描和已扫描 dest把处理过的数组划分为两个部分

cur和dest把整个数组划分为3个区间:

双指针是快排里面最核心的一步 其实就是数据划分这一步

下面是效果图和代码:

复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        for(int cur = 0, dest = -1;cur<nums.length;cur++){
            if(nums[cur] != 0){
                dest++;
                int tmp = nums[cur];
                nums[cur]=nums[dest];
                nums[dest]=tmp;
            }
        }        
    }
}
//xiyu250928#1*1
相关推荐
Swift社区4 分钟前
LeetCode 458 - 可怜的小猪
算法·leetcode·职场和发展
AI科技星11 分钟前
宇宙的像素:真空中一点如何编码无限星光
数据结构·人工智能·算法·机器学习·重构
程芯带你刷C语言简单算法题14 分钟前
Day37~求组合数
c语言·开发语言·学习·算法·c
程序员-周李斌16 分钟前
transmittable-thread-local[线程池跨线程值传递]
java·开发语言·算法·散列表
Flash.kkl19 分钟前
优先算法专题十七——多源BFS
算法·宽度优先
Yzzz-F20 分钟前
牛客小白月赛 D[差分] E [暴力枚举] F[] g[二阶差分]
算法
liliangcsdn22 分钟前
DDPM前向加噪过程详细推导
人工智能·算法·机器学习
没有bug.的程序员39 分钟前
Sentinel 流控原理深度解析:构建高可用微服务的底层架构
java·算法·微服务·云原生·架构·sentinel·负载均衡
深圳佛手40 分钟前
IVFFlat 与 HNSW 算法介绍与对比
人工智能·算法·机器学习
Q741_14744 分钟前
C++ 栈 模拟 力扣 227. 基本计算器 II 题解 每日一题
c++·算法·leetcode·模拟