58同城前端二面:存在重复元素,oc了

题目:给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。
示例 1:
输入:nums = [1,2,3,1]
输出:true
解释:
元素 1 在下标 0 和 3 出现。

示例 2:
输入:nums = [1,2,3,4]
输出:false
解释:
所有元素都不同。

示例 3:
输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true
解法一:使用哈希表
思路:遍历数组,将每个元素存入哈希表中,如果在遍历过程中发现某个元素已经在哈希表中存在,则说明存在重复元素。
func containsDuplicate(nums []int) bool {
seen := make(map[int]bool)
for _, num := range nums {
if seen[num] {
return true
}
seen[num] = true
}
return false
}

func containsDuplicate(nums []int) bool {
sort.Ints(nums)
for i := 1; i < len(nums); i++ {
if nums[i] == nums[i-1] {
return true
}
}
return false
}

方法三:暴力解法
思路:使用两层循环,逐个比较每个元素与其他元素是否相等,如果有相等的元素,则说明存在重复元素。
func containsDuplicate3(nums []int) bool {
for i := 0; i < len(nums); i++ {
for j := i + 1; j < len(nums); j++ {
if nums[i] == nums[j] {
return true
}
}
}
return false
}

leetcode:https://leetcode.cn/leetbook/read/top-interview-questions-easy/x248f5/

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/422520.html

(0)
联系我们
联系我们
分享本页
返回顶部