LeetCode演算法題283 移動零解析

2021-09-01 07:47:10 字數 818 閱讀 8249

給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。

示例:

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

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

說明:

必須在原陣列上操作,不能拷貝額外的陣列。

儘量減少操作次數。

這個題也沒有其它的好辦法,只能將0與非零值位置互換直到最後。

c++源**:

class

solution}}

}}};

python3源**:

class

solution

:def

movezeroes

(self, nums)

:"""

:type nums: list[int]

:rtype: void do not return anything, modify nums in-place instead.

"""for i in

range

(len

(nums)-1

):if nums[i]==0

:for j in

range

(i+1

,len

(nums)):

if nums[j]

: nums[i]

, nums[j]

= nums[j]

, nums[i]

break

Leetcode刷題283 移動零

方法1 把陣列中j個非零元素存放在陣列的前j項,之後把後邊的元素設定為0即可,如下 class solution def movezeroes self,nums list int none do not return anything,modify nums in place instead.j ...

LeetCode第283題 移動零

給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0 1,0 3,12 輸出 1 3,12 0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。解法一 使用氣泡排序的方法將所有0移動到後面。emps 解法二 遍歷兩次陣列,第...

leetcode刷題打卡 283移動零

題目描述 給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0 1,0 3,12 輸出 1 3,12 0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。解題思路 定義兩個指標 a b,指標a一直在遍歷原陣列,指標a b一起...