一、自己思路:
2.**:
class solution:
def removeelement(self, nums, val):
""":type nums: list[int]
:type val: int
:rtype: int
"""for i in range(len(nums)):
flag=true
if nums[i]!=val:
continue
else:
for j in range(i+1,len(nums)):
if nums[j]==val:
continue
else:
flag=false
tmp=nums[j]
nums[j]=nums[i]
nums[i]=tmp
i=i+1
if flag==true:
return i
二、更簡單的思路:
思路:迭代快指標,當快指標與指定值不相等時,將快指標的值賦值為慢指標,最後返回慢指標即可
**:
class solution:
def removeelement(self, nums, val):
""":type nums: list[int]
:type val: int
:rtype: int
"""i=0
for j in range(0,len(nums)):
if nums[j]!=val:
nums[i]=nums[j]
i=i+1
return i
三、利用python的內建函式
1).list.index(val)和list.pop([i])
class solution:
def removeelement(self, nums, val):
""":type nums: list[int]
:type val: int
:rtype: int
"""
while val in nums:
i = nums.index(val)
nums.pop(i)
return len(nums)
2).nums.remove(val)
class solution:
def removeelement(self, nums, val):
""":type nums: list[int]
:type val: int
:rtype: int
"""
while val in nums:
nums.remove(val)
return len(nums)
LeetCode 移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...
leetcode 移除元素
給定乙個陣列 nums 和乙個值 val,原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 val...
Leetcode 移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...