26,80 题是删除 有序数组 中的 重复项
对于此类问题,我们应该进行如下考虑:
- 由于是保留 k 个相同数字,对于前 k 个数字,我们可以直接保留。
- 对于后面的任意数字,能够保留的前提是:与当前写入的位置前面的第 k 个元素进行比较,不相同则保留
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
i=0
for num in nums:
if i<1 or nums[i-1]!=num:
nums[i]=num
i+=1
return i
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
i=0
for num in nums:
if i<2 or nums[i-2]!=num:
nums[i]=num
i+=1
return i
27 题是删除 无序数组 中的 指定元素
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
i=0
for num in nums:
if num!=val:
nums[i]=num
i+=1
return i