LeetCode 训练场:283. 移动零
发布日期:2021-05-08 06:28:20 浏览次数:20 分类:精选文章

本文共 561 字,大约阅读时间需要 1 分钟。

1. 题目

2. 描述

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

示例:

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

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

3. 思路

  1. 声明一个 count 用于计数数组中不为 0 的元素个数
  2. 然后遍历数组,将不为 0 的元素存入数组前 count
  3. 然后将剩下的 nums.length - count 位置为 0
  4. 此时主要进行遍历操作,时间复杂度为 O ( n ) O(n) O(n).

4. 实现

public void moveZeroes(int[] nums) {       // 计数不为零的元素个数    int count = 0;    // 遍历数组,将不为 0 的存入数组前 count 位    for (int item : nums) {           if (item != 0) {               nums[count++] = item;        }    }    // 将剩下的 num.length - count 位置为 0    for (int i = count; i < nums.length; i++) {           nums[i] = 0;    }}
上一篇:LeetCode 训练场:1051. 高度检查器
下一篇:LeetCode 训练场:905. 按奇偶排序数组

发表评论

最新留言

不错!
[***.144.177.141]2025年04月15日 06时24分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章