第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

LeetCode 283:移動零 Move Zeroes

標簽:
Java Python 算法


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


Given an array `nums`, write a function to move all `0`'s to the end of it while maintaining the relative order of the non-zero elements.


**示例:**


```

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

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

```


**说明**:


1. 必须在原数组上操作,不能拷贝额外的数组。

2. 尽量减少操作次数。


**Note**:


1. You must do this **in-place** without making a copy of the array.

2. Minimize the total number of operations.


### 解题思路:


千万不要被题目局限了思维!题目让把所有0移到末尾,如果你的思路是遇零与末尾数字交换位置,然后还需要把非零数字排序,那么就被带偏了。


换个思路,把**非 0 数字前移,不去管数字 0**。


定义两个指针:指针 i 直接遍历数组遇到非 0 数字把该数字赋值给指针 j 所在的索引,索引 j 自增 1,i继续遍历。


这样遍历完之后,数组索引从0到 j 之间的数值即为所求得`保持非零元素的相对顺序`,而 j 之后的数值只需要全部赋值 0 即可。


### Java:


```java

class Solution {

    public void moveZeroes(int[] nums) {

        int numsLen = nums.length;

        if (numsLen < 1) return;//数组长度小于一直接返回

        int j = 0;

        for (int i = 0; i < numsLen; i++) {//遍历数组

            if (nums[i] != 0) {//如果该数不为0

                nums[j++] = nums[i];//赋值给索引j

            }

        }

        while (j < numsLen) nums[j++] = 0;//把从j到末尾所有数字赋值0

    }

}

```


### Python3:


```python

class Solution:

    def moveZeroes(self, nums: List[int]) -> None:

        """

        Do not return anything, modify nums in-place instead.

        """

        if len(nums) < 1:

            return

        j = 0

        for num in nums:

            if num != 0:

                nums[j] = num

                j += 1

        for i in range(j, len(nums)):

            nums[i] = 0


```


如果题目不限制在原数组上操作,用python一行可解决:


`nums = [i *for* i in nums *if* i != 0]+[i *for* i in nums *if* i == 0]`


> 爱写bug(ID:iCodeBugs)



點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消