存在重复元素(描述一):
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 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
解法一:
思想:先对数组排序;再对数组进行遍历判断是否有重复
class Solution: def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ n = sorted(nums) L = len(n) i = 0 while i < L - 1: if n[i] == n[i+1]: return True i += 1 return False
解法二:
1.set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
2.这种做法的思想就是插入法判断数组有重复
class Solution: def containsDuplicate(self, nums): k = set() for i in nums: if i in k: return True else: k.add(i) return False
存在重复元素(描述二):
给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 k。
示例 1:
输入: nums = [1,2,3,1], k= 3, t = 0 输出: true
示例 2:
输入: nums = [1,0,1,1], k=1, t = 2 输出: true
示例 3:
输入: nums = [1,5,9,1,5,9], k = 2, t = 3 输出: false