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

提交结果:

相关推荐
诗9趁年华9 分钟前
深入分析线程池
java·jvm·算法
九年义务漏网鲨鱼1 小时前
【大模型面经】千问系列专题面经
人工智能·深度学习·算法·大模型·强化学习
源码之家2 小时前
机器学习:基于大数据二手房房价预测与分析系统 可视化 线性回归预测算法 Django框架 链家网站 二手房 计算机毕业设计✅
大数据·算法·机器学习·数据分析·spark·线性回归·推荐算法
Lv Jianwei2 小时前
Longest Palindromic Substring最长回文子串-学习动态规划Dynamic Programming(DP)
算法
WWZZ20252 小时前
快速上手大模型:深度学习7(实践:卷积层)
人工智能·深度学习·算法·机器人·大模型·卷积神经网络·具身智能
l1t2 小时前
用SQL求解advent of code 2024年23题
数据库·sql·算法
10岁的博客3 小时前
二维差分算法高效解靶场问题
java·服务器·算法
轻微的风格艾丝凡3 小时前
锂电池 SOC 估计技术综述:成熟算法、新颖突破与车企应用实践
算法·汽车
Codeking__3 小时前
动态规划算法经典问题——01背包问题
算法·动态规划
R-G-B3 小时前
归并排序 (BM20 数组中的逆序对)
数据结构·算法·排序算法