Task18(簡單)陣列 26

2021-09-26 16:28:19 字數 1082 閱讀 3716

26.刪除排序陣列中的重複項

給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。

不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o(1) 額外空間的條件下完成。

示例 1:

給定陣列 nums = [1,1,2],

函式應該返回新的長度 2, 並且原陣列 nums 的前兩個元素被修改為 1, 2。

你不需要考慮陣列中超出新長度後面的元素。

示例 2:

給定 nums = [0,0,1,1,1,2,2,3,3,4],

函式應該返回新的長度 5, 並且原陣列 nums 的前五個元素被修改為 0, 1, 2, 3, 4。

你不需要考慮陣列中超出新長度後面的元素。

思路:主要用了「雙指標法」,慢指標負責更新不同元素的位置,只有當碰到不同元素的時候才會更新,由此也可以看出慢指標是「跳躍式」更新。而快指標就簡單了,它會隨著陣列元素的遍歷同步更新,每次向後移動乙個位置,直到陣列遍歷完成。在這個過程中,慢指標會記錄新陣列(最後需要的陣列)元素的下標,同時將該元素占用之前重複元素的位置,這就完成了在原陣列基礎之上做刪除操作。

def

removeduplicates

(self

, nums:

list

[int])-

> int:

flag =

0# 定義乙個指標變數

for num in nums:

# 遍歷陣列

if nums[flag]

!= num:

# 若指標指向的元素與當前遍歷陣列的元素不同

flag +=1

# 指標後移一位

nums[flag]

= num # 修改陣列,將不同的元素占用重複元素的位置

# 若相同則指標不動,陣列繼續往後遍歷

# 注意考慮陣列為空的情況(flag初始值為0,由於要求陣列長度,故需要加1)

return

len(nums)

and flag +

1

Task40(簡單)數學 8

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...

簡單陣列 static 陣列

2.陣列的使用 a.函式中區域性變數 宣告週期延長 該變數不隨函式結束而結束 初始化 只在第一次呼叫該函式時進行初始化 記憶性 後序呼叫時,該變數使用前一次函式呼叫完成之後儲存的值 儲存位置 不會儲存在棧上,放在資料段 其中,c因為每次迴圈始終為1,而b因為static的緣故,只在一開始初始化一次,...

php 簡單陣列問題

問題 array 0 1 3 2 2 4 5 3 3 4 4 2 3 5 1 2 我想檢查陣列當中是否存在兩個數是相反的 比如3 2 和2 3 2 3 之間是空格隔開 自己寫了乙個簡單的 foreach array as value 感覺用了兩次foreach和explode,冗餘,效率不高。後來論...