LeetCode 每日一题 283. 移动零

    技术2022-07-10  126

    文章目录

    1. 题目2. 描述3. 思路4. 实现

    1. 题目

    移动零

    2. 描述

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

    示例:

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

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

    3. 思路

    声明一个 count 用于计数数组中不为 0 的元素个数然后遍历数组,将不为 0 的元素存入数组前 count 位然后将剩下的 nums.length - count 位置为 0此时主要进行遍历操作,时间复杂度为 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; } }

    Processed: 0.012, SQL: 10