Leetcode 283-移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

题解

题解参考自王尼玛

借鉴快排的思想,将0作为哨兵,从左到右将所有不为零的元素和零元素进行交换

1.left指向第一个为零的元素,right指向left后第一个不为零的元素

2.将numsleft和numsright对换

3.left和right继续移到下一个为零和不为零的位置,直至数组遍历结束

bash 复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        int left=0,right=0;
        while(right<nums.length){
            //left指向第一个为0的元素或者数组长度+1的位置
            while(left<nums.length&&nums[left]!=0) left++;
            right=left+1;
            //right指向第一个为0的元素或者数组长度+1的位置
            while(right<nums.length&&nums[right]==0) right++;
            if(right<nums.length){
                int tmp=nums[left];
                nums[left]=nums[right];
                nums[right]=tmp;
            }
        }
    }
}
相关推荐
Stick_ZYZ7 分钟前
从 Prompt 到 Context Engineering:Agent 真正稳定的关键
大数据·人工智能·算法·ai·prompt
ZHW_AI课题组11 分钟前
使用Stable Diffusion v1.5文本引导与无分类器引导(CFG)算法实现条件生成图片
人工智能·python·算法·机器学习·stable diffusion
黎阳之光22 分钟前
数字孪生赋能智慧油站建设|黎阳之光全场景可视化安防管控平台落地应用
大数据·物联网·算法·安全·数字孪生
cpp_250128 分钟前
P11375 [GESP202412 六级] 树上游走
数据结构·c++·算法·题解·洛谷·树形结构·gesp六级
小雨下雨的雨31 分钟前
鸿蒙PC用Electron框架 实现 房产交易系统核心算法深度解析
前端·javascript·算法·华为·electron·鸿蒙系统
CQU_JIAKE32 分钟前
6.3[a]
算法
此生决int32 分钟前
算法从入门到精通——字符串
数据结构·c++·算法·蓝桥杯
bIo7lyA8v33 分钟前
算法复杂度下限证明与优化空间分析的技术8
算法
luj_176835 分钟前
硝酸体系核关联假说解析
服务器·c语言·开发语言·经验分享·算法
Je1lyfish37 分钟前
CMU15-445 (2025 Fall/2026 Spring) Project#4 - Concurrency Control
开发语言·数据库·c++·笔记·后端·算法·系统架构