給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。
輸入: [0,1,0,3,12]說明:輸出: [1,3,12,0,0]
必須在原陣列上操作,不能拷貝額外的陣列。
儘量減少操作次數。
將陣列中所有0刪掉,然後刪掉了幾個就在末尾追加幾個。
class
solution
:def
movezeroes
(self, nums)
: len_nums =
len(nums)
while nums.count(0)
>0:
nums.remove(0)
new_len =
len(nums)
for i in
range
(len_nums - new_len):0
)
使用雙指標的方法解,就很便捷。
class
solution
:def
movezeroes
(self, nums)
: left =
0 right =
1while right <
len(nums)
:if nums[left]==0
and nums[right]!=0
: nums[left]
, nums[right]
= nums[right]
, nums[left]
left +=
1 right +=
1elif nums[left]==0
and nums[right]==0
: right +=
1else
: left +=
1 right +=
1if __name__ ==
'__main__'
: li =[0
,1,0
,3,12
] solution(
).movezeroes(li)
print
(li)
每日一題 120 矩陣置零
給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。示例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 示例 2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,0,0,0 0,4,5,0...
每日一題 1
題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...
每日一題2018 3 21
leetcode 2 模擬十進位制運算考察單鏈表基本操作。題無難點,個人基礎需要提高。definition for singly linked list.struct listnode class solution while p while q if shi val s next null ret...