给定一个排列好的列表,将它整理成重复项最多出现两次,比方说以下
[1,1,1,2,2,3] -> [1,1,2,2,3, ...]
最後回传整理完成的数量,比方说上面会回传 5 (1, 1, 2, 2, 3)。
最後以下几点要注意
只能修改该数组,利用的空间复杂度最多为1(意思就是不能创建新的数组append值)
不用管超过回传值以後nums的值
"""
比方说输入的 nums = [0,0,1,1,1,1,2,3,3]
那最後回传值要等於7,且 nums[:7] 要等於 [0,0,1,1,2,3,3]
"""
用 head 纪录当前元素,tmp纪录元素重复几次,接下来回圈开始比较当前值与下一个值,
最後返回 head + 1 (因为head是下标值,非长度)
def removeDuplicates(self, nums) -> int:
head = 0
tmp = 0
for i in range(1, len(nums)):
if nums[i] != nums[head]:
head += 1
tmp = 0
nums[head] = nums[i]
else:
if tmp == 0:
head += 1
tmp += 1
nums[head] = nums[i]
return head + 1
<<: [用 Python 解 LeetCode] (002) 26. Remove Duplicates from Sorted Array
>>: 如何快速复制 (clone) 20 TB SQL Server 资料库 - 心得分享
双重控制、职责分离、权限分离和 M of N Control 是用於防止欺诈和错误的安全控制。但是,...
今天学习了变数以及变数的应用 上次学习到把文字显示於萤幕(命令提示字元)上 这次要来练习将变数存放的...
var b = new String('abcdef'); // 这里 String 为建构函式 c...
前天讲了豆技巧,今天再讲一点好了... 假设有个情境是要用数个布林值来判断接下来要做什麽动作,先从简...
这一篇就来接续写完 Vue 过渡及动画的内容啦!希望能顺利写完我的 Vue 笔记。 多个元素的切换转...