2024-01-08 12:06阅读: 4评论: 0推荐: 0

[刷题班] LeetCode283. 移动零

题目描述

思路:快慢指针

慢指针的左侧表示所有非零元素
快指针依次遍历每个元素

方法一:时间复杂度O(n2)

class Solution {
    public void moveZeroes(int[] nums) {
        for (int i = 0; i < nums.length; i ++) {
            // 指针i为0的时候停止
            if (nums[i] == 0) {
                // 遍历[i + 1, nums.length - 1],如果遇到nums[j] != 0,就交换两个位置的元素值
                for (int j = i + 1; j < nums.length; j ++) {
                    if (nums[j] != 0) {
                        int temp = nums[i];
                        nums[i] = nums[j];
                        nums[j] = temp;
                        break;
                    }
                }
            }
        }
    }
}

方法二:双指针,时间复杂度O(n)

快慢指针

class Solution {
    public void moveZeroes(int[] nums) {
       // 定义快慢指针
       int slow = 0, fast = 0;
       for (; fast < nums.length; fast ++) {
           if (nums[fast] != 0) {
               int temp = nums[fast];
               nums[fast] = nums[slow];
               nums[slow++] = temp;
           }
       }
    }
}

方法三:双指针,优化

覆盖操作 + 置零操作

class Solution {
    public void moveZeroes(int[] nums) {
        int slow = 0, fast = 0;
        for (; fast < nums.length; fast ++) {
            if (nums[fast] != 0) {
                nums[slow ++] = nums[fast];
            }
        }
        for (; slow < nums.length; slow ++) nums[slow] = 0;
    }
}

本文作者:Ac_c0mpany丶

本文链接:https://www.cnblogs.com/keyongkang/p/17952143

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ac_c0mpany丶  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 You Are My Sunshine REOL
You Are My Sunshine - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Traditional

You are my sunshine

My only sunshine.

You make me happy

When skies are gray.

You'll never know, dear,

How much I love you.

Please don't take my sunshine away

The other night, dear,

When I lay sleeping

I dreamed I held you in my arms.

When I awoke, dear,

I was mistaken

So I hung my head and cried.

You are my sunshine,

My only sunshine.

You make me happy

When skies are gray.

You'll never know, dear,

How much I love you.

Please don't take my sunshine away.

You are my sunshine,

My only sunshine

You make me happy

When skies are gray.

You'll never know, dear

How much I love you

Please don't take my sunshine away

Please don't take my sunshine away.

Please don't take my sunshine away.