算法: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 小时前
Java-数据类型
java
代码不停1 小时前
BFS解决floodfill算法题目练习
算法·宽度优先
学习3人组1 小时前
Mes全连路架构图
java·erp
上弦月-编程2 小时前
C语言指针从入门到实战
java·jvm·算法
WL_Aurora2 小时前
Python 算法基础篇之树和二叉树
python·算法
Cyan_RA92 小时前
SpringMVC 请求数据绑定与参数映射 详解
java·后端·spring·mvc·springmvc·映射请求数据
txzrxz2 小时前
关于前缀和
算法·动态规划·图论
杨连江2 小时前
载流子矩阵限域束缚实现常温常压超导的理论与结构设计
算法
逻辑驱动的ken2 小时前
Java高频面试考点场景题20
java·开发语言·深度学习·面试·职场和发展
bzmK1DTbd2 小时前
Java游戏服务器:Netty框架的高并发网络通信
java·服务器·游戏