# 定義兩個指標i,last。i指向nums的開始,last指向nums的結束
# 例nums=[3,2,2,3]
# val=3
# round1 [3,2,2,3]。nums中i=0的數和val比較,若相等,將第乙個數字nums[i]與最後乙個數字nums[last]做交換,得3,2,2,3,last指標向前移一位指向2,i不變
# round2 [2,2,3,3]。nums中i=0的數和val比較,若相等,將第乙個數字nums[i]與nums[last]做交換,得2,2,3,3,last指標向前移一位指向1,i不變
# round3 [2,2,3,3]。nums中i=0的數和val比較,不等,i指向下乙個,i=1
# round4 [2,2,3,3]。nums中i=1的數和val比較,不等,i指向下乙個,i=2
# round5 i=2大於last=1(i已經遍歷了所有的數字),返回last+1
while i <= last:
if nums[i]
== val:
nums[i]
, nums[last]
= nums[last]
, nums[i]
last -=
1else
: i +=
1return last +
1if __name__ ==
"__main__"
: sol = solution(
) nums =[0
,1,2
,2,3
,0,4
,2] a = sol.removeelement(nums,2)
(a)for i in
range
(a):
(nums[i]
)
LeetCode 27 移除元素
27 移除元素 給定乙個陣列和乙個值,在這個陣列中原地 移除指定值和返回移除後新的陣列長度。不要為其他陣列分配額外空間,你必須使用 o 1 的額外記憶體原地 修改這個輸入陣列。元素的順序可以改變。超過返回的新的陣列長度以外的資料無論是什麼都沒關係。示例 給定 nums 3,2,2,3 val 3,你...
LeetCode 27 移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地 移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3...
leetcode27移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地 移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3...