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;
    }
}

提交结果:

相关推荐
程序员三藏1 天前
接口测试及常用接口测试工具总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
spcier1 天前
图论拓扑排序-Kahn 算法
算法·图论
知星小度S1 天前
动态规划(一)——思想入门
算法·动态规划
ysa0510301 天前
动态规划-逆向
c++·笔记·算法
燃于AC之乐1 天前
我的算法修炼之路--7—— 手撕多重背包、贪心+差分,DFS,从数学建模到路径DP
c++·算法·数学建模·深度优先·动态规划(多重背包)·贪心 + 差分
chinesegf1 天前
文本嵌入模型的比较(一)
人工智能·算法·机器学习
We་ct1 天前
LeetCode 6. Z 字形变换:两种解法深度解析与优化
前端·算法·leetcode·typescript
REDcker1 天前
Redis容灾策略与哈希槽算法详解
redis·算法·哈希算法
福楠1 天前
C++ STL | map、multimap
c语言·开发语言·数据结构·c++·算法
Sarvartha1 天前
二分查找学习笔记
数据结构·c++·算法