LeetCode简单题之复写零
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之复写零
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
給你一個長度固定的整數(shù)數(shù)組 arr,請你將該數(shù)組中出現(xiàn)的每個零都復(fù)寫一遍,并將其余的元素向右平移。
注意:請不要在超過該數(shù)組長度的位置寫入元素。
要求:請對輸入的數(shù)組 就地 進(jìn)行上述修改,不要從函數(shù)返回任何東西。
示例 1:
輸入:[1,0,2,3,0,4,5,0]
輸出:null
解釋:調(diào)用函數(shù)后,輸入的數(shù)組將被修改為:[1,0,0,2,3,0,0,4]
示例 2:
輸入:[1,2,3]
輸出:null
解釋:調(diào)用函數(shù)后,輸入的數(shù)組將被修改為:[1,2,3]
提示:
1 <= arr.length <= 10000
0 <= arr[i] <= 9
來源:力扣(LeetCode)
解題思路
??題目的意思很簡單就是在遍歷數(shù)組的時候如果遇到0,就在它后面添加一個0,按照示例1的模板,不難發(fā)現(xiàn)原數(shù)組的長度在添加完0后不變,多出的部分被刪掉了,所以就是添加幾個0就從末端刪除幾個元素。
class Solution:def duplicateZeros(self, arr: List[int]) -> None:"""Do not return anything, modify arr in-place instead."""temp=[]count=-1 #定位不同的0所在的位置for i in range(len(arr)): if arr[i]==0:count+=1if i+count>len(arr)-1: #如果插入的0已經(jīng)在數(shù)組外面則中斷breaktemp.append(i+count)for i in temp: #按照算好的位置插入0,然后刪除末尾元素arr.insert(i,0)arr.pop()
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之复写零的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之两数之和 IV
- 下一篇: LeetCode简单题之分糖果 II