leetcode 0027移除元素 python C++
阿新 • • 發佈:2021-01-23
文章目錄
一、思路
題目要求原地修改,如果非原地修改我們可以怎麼做?建立一個新的陣列,把滿足要求的值存到新的陣列中。 現在我們可以把原陣列也看成這個新的陣列,雙指標,一個指標 j 表示原陣列的指標用來尋找滿足條件的值(非val),一個指標 i 表示新陣列的指標,用來儲存滿足條件的值。二、程式碼
1.python
程式碼如下:
class Solution:
def removeElement(self, nums, val) :
# 1 非val值覆蓋
'''
i,j = 0,0
while j < len(nums):
if nums[j] != val:
nums[i] = nums[j]
i += 1
j += 1
return i
'''
# 2 將前邊的val與最後一項交換
i = 0
n = len(nums)
while i < n:
if nums[i] == val:
nums[i] = nums[n-1]
n -= 1
else:
i += 1
return i
2.C++
待更新