本文介绍: 【代码】1.3 面试经典150题 – 删除有序数组中的重复项。
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
# 处理边界数据
if not nums: return 0
if len(nums) == 1: return 1
# 两个指针,一个记录当前有多少个不重复值的个数,一个记录最新遍历到的值
count = 1
tmp = nums[0]
for i in range(1, len(nums)):
if nums[i] == tmp:
continue
# 遍历到新的值时,更新指针
tmp = nums[i]
nums[count] = tmp
count += 1
# 切分原数据,并返回结果
nums = nums[:count]
return count
针对上面的解答,略加改造
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
# 处理边界数据
if not nums: return 0
if len(nums) == 1: return 1
# 三个指针,一个记录当前数组中应该有的值的个数,一个记录最新遍历到的值,一个记录重复次数
count = 1
tmp = nums[0]
tmp_count = 1
for i in range(1, len(nums)):
if nums[i] == tmp:
# 增加重复次数计数
tmp_count += 1
if tmp_count > 2:
# 超过2次时,不记录在数组了
continue
else:
# 更新值和重复次数
tmp = nums[i]
tmp_count = 1
# 更新数组的值,并更新值个数的指针
nums[count] = tmp
count += 1
# 切分原数据,并返回结果
nums = nums[:count]
return count
原文地址:https://blog.csdn.net/qq_29491663/article/details/135577984
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_57509.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。