力扣--283.移动零

题目

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

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

示例 1:

输入: nums = [0,1,0,3,12]

输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]

输出: [0]

提示:

复制代码
1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1

代码

class Solution {

public void moveZeroes(int[] nums) {

int index = 0;

for(int i = 0;i< nums.length;i++){

if(nums[i] != 0){

nums[index] = nums[i];

index++;

}

}

for(int i = index;i< nums.length;i++){

nums[i] = 0;

}

}

}

双指针

public void moveZeroes(int[] nums) {

if (nums.length == 1) {

return;

}

复制代码
    int slow = 0;
    for (int fast = 1; fast < nums.length; fast++) {
        if (nums[slow] == 0 && nums[fast] != 0) {
            nums[slow] = nums[fast];
            nums[fast] = 0;
            slow++;
        } else if (nums[slow] != 0) {
            slow++;
        }
    }
}
相关推荐
ZZZS05168 分钟前
stack栈练习
c++·笔记·学习·算法·动态规划
黑听人13 分钟前
【力扣 困难 C】115. 不同的子序列
c语言·leetcode
hans汉斯33 分钟前
【人工智能与机器人研究】基于力传感器坐标系预标定的重力补偿算法
人工智能·算法·机器人·信号处理·深度神经网络
vortex52 小时前
算法设计与分析:分治、动态规划与贪心算法的异同与选择
算法·贪心算法·动态规划
前端拿破轮3 小时前
🤡🤡🤡面试官:就你这还每天刷leetcode?连四数相加和四数之和都分不清!
算法·leetcode·面试
地平线开发者3 小时前
征程 6|工具链量化简介与代码实操
算法·自动驾驶
DoraBigHead3 小时前
🧠 小哆啦解题记——谁偷改了狗狗的台词?
算法
Kaltistss3 小时前
240.搜索二维矩阵Ⅱ
线性代数·算法·矩阵
轻语呢喃3 小时前
每日LeetCode:合并两个有序数组
javascript·算法
大熊猫侯佩4 小时前
Swift 数学计算:用 Accelerate 框架让性能“加速吃鸡”
算法·swift