leetcode 热题 100_移动零

题解一:

双指针遍历:将非零的值往数组前端依次放置,将放置之后数组后端多余的位置都置为0,参考下图(来源. - 力扣(LeetCode)

java 复制代码
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;
        }
    }
}

题解二:

双指针遍历:类似快速排序,以0作为参照点,将不等于0的值放到左边,将等于0的值放到右边 (二者交换),参考下图(来源. - 力扣(LeetCode)

java 复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        int index = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                int temp = nums[i];
                nums[i] = nums[index];
                nums[index] = temp;
                index++;
            }
        }
    }
}
相关推荐
徐子童43 分钟前
优选算法---链表
数据结构·算法·链表·面试题
如意.75944 分钟前
从零开始的指针(3)
算法
cwplh1 小时前
MX模拟赛总结
算法·动态规划
浅川.251 小时前
xtuoj 随机数
算法
shan&cen1 小时前
Day02 集合 | 30. 串联所有单词的子串、146. LRU 缓存、811. 子域名访问计数
java·数据结构·算法·缓存
NAGNIP2 小时前
大模型微调框架之TRL
算法
麦当_2 小时前
SwipeMultiContainer 滑动切换容器算法指南
前端·javascript·算法
橘子132 小时前
递归,搜索与回溯算法
算法
黄贵根2 小时前
C++20 基于文本文件的类对象增删查改系统
算法·c++20
max5006003 小时前
使用OmniAvatar-14B模型实现照片和文字生成视频的完整指南
图像处理·人工智能·深度学习·算法·音视频