存在重复
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。
这个算是比较容易的。(判断的方法依据就是:我不用百度会做😂)
-1)使用Set
代码如下:
class Solution {
func containsDuplicate(_ nums: [Int]) -> Bool {
let set = Set(nums)
return set.count != nums.count
}
}
执行时间:52ms
-2) 排序判断前后有没有相等的元素(时间多少取决于排序算法,我这直接用的Swift提供的sorted
)
代码如下:
class Solution {
func containsDuplicate(_ nums: [Int]) -> Bool {
if nums.isEmpty || nums.count == 1 {
return false
}
let nums = nums.sorted()
for i in 0..<nums.count - 1 {
if nums[i] == nums[i + 1] {
return true
}
}
return false
}
}
执行用时:96 ms
-3)使用哈希表(Dictionary)
代码如下:
class Solution {
func containsDuplicate(_ nums: [Int]) -> Bool {
for i in 0..<nums.count {
if let _ = dic[nums[i]] {
return true
}
dic[nums[i]] = i
}
return false
}
}
执行用时:68 ms