Day44作业题:使用Day43 的方法判断是否存在重复元素

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。