leetcode刷题之283:移动零

问题

实现思路

首先, 将dest指向-1 位置, cur指向下标为0 的位置, 在cur遍历的过程中:

  1. 遇到非零元素则与下标dest+1 位置的元素交换,

  2. 若遇到零元素则只继续cur遍历.

下标为1 的位置上是 非零元素 执行1) 交换得到右图结果 随后cur++ 得到下图结果

下标为2 的位置上是零元素 执行2)

下标为3 的位置上是非零元素 执行1) 交换得到右图结果 随后cur++ 得到下图结果

下标为4 的位置上是非零元素, 执行1) 交换得到右图结果

遍历结束, 实现要求

代码:

java 复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        int cur = 0, dest = -1;
        while(cur < nums.length) {
            if(nums[cur] == 0) {
                cur++;
            } else {
                swap(nums, cur, dest+1);
                cur++;
                dest++;
            }
        }
    }

    public void swap(int[] nums, int left, int right) {
        int tmp = nums[left];
        nums[left] = nums[right];
        nums[right] = tmp;
        return;
    }
}

提交结果:

相关推荐
寻寻觅觅☆8 分钟前
东华OJ-基础题-127-我素故我在(C++)
开发语言·c++·算法
ab1515179 分钟前
2.13完成101、102、89
开发语言·c++·算法
苏婳6661 小时前
销售类结构化面试题库
面试·职场和发展·求职·找工作·面试题目
月挽清风1 小时前
代码随想录第31天:贪心
算法
AI周红伟1 小时前
周红伟:SeedDance 2技术架构和技术原理
人工智能·深度学习·算法
俩娃妈教编程1 小时前
洛谷选题:P1420 最长连号
数据结构·算法
Wect1 小时前
LeetCode 25. K个一组翻转链表:两种解法详解+避坑指南
前端·算法·typescript
二年级程序员2 小时前
单链表算法题思路详解(上)
c语言·数据结构·c++·算法
wshzd2 小时前
LLM之Agent(四十四)|使用 GRPO 算法训练多智能体系统用于复杂任务规划
算法
谁不学习揍谁!2 小时前
基于python机器学习算法的农作物产量可视化分析预测系统(完整系统源码+数据库+详细文档+论文+详细部署教程+答辩PPT)获取方式
python·算法·机器学习