Leetcode217. 存在重复元素
题目:
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
题解:
方案一:先排序,查看两个相邻元素是否相等。
方案二:使用hashSet
scala代码如下:
/**
* 排序方法
* 时间复杂度 : O(nlogn)。
*
* @param nums
* @return
*/
def containsDuplicate(nums: Array[Int]): Boolean = {
var flag = false
util.Arrays.sort(nums)
for (i <- 0 until nums.length) {
if (nums(i) == nums(i + 1)) flag = true
}
flag
}
/**
* hash方式
* 时间复杂度 : O(n)。
*
* @param nums
* @return
*/
def containsDuplicate2(nums: Array[Int]): Boolean = {
var flag = true
var result = false
val set = new util.HashSet[Int]()
for (num <- nums; if (flag)) {
if (set.contains(num)) {
result = true
flag = false
} else {
set.add(num)
}
}
flag
}