本周题目难度级别'Medium',使用语言'Python'
题目:给你一个数组,你要进行数组去重,最多重复一次,然后将新的数组长度返回(注:只能在原数组上操作,不能创建新的数组)eg:给你[0,0,1,1,1,1,2,3,3],你要返回7,并将数组前七个元素改为[0, 0, 1, 1, 2, 3, 3]。
思路:题目就是思路了,遍历去重么,关键是怎么实现,直接看代码吧:
class Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
for i in nums:
# 当数组的这个元素个数超过2就删掉一个
while nums.count(i) > 2:
del nums[nums.index(i)]
return len(nums)
这个效率太低,换个姿势,小伙伴写的效率高,就不注释了:
class Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n = 0
for i in nums:
if n < 2 or i > nums[n-2]:
nums[n] = i
n += 1
return n
网友评论