Day44作业题:使用Day43 的方法判断是否存在重复元素
做到空间复杂度O(1)
Day43的方法 https://t.zsxq.com/FQzFujY
在LeetCode217题上额外加一个条件:数组可能的取值范围:[1,n],基于此判断是否存在重复元素。
如果任意一值在数组中出现至少两次,函数返回 True 。如果数组中每个元素都不相同,则返回 false 。
示例 1:
输入: [1,2,3,1]
输出: True
示例 2:
输入: [1,2,3,4]
输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: True
Leecode: https://leetcode-cn.com/problems/contains-duplicate/
class Solution:
def containsDuplicate(self, nums) -> bool:
for index, num in enumerate(nums):
key = abs(nums[index]) -1
if nums[key] <0:
return True
else:
nums[key] = -nums[key]
return False
def test_solution():
s = Solution()
nums = [1,2,3,1]
assert s.containsDuplicate(nums) == True
nums = [1,2,3,4]
assert s.containsDuplicate(nums) == False
nums = [1,1,1,3,3,4,3,2,4,2]
assert s.containsDuplicate(nums) == True
网友评论