每日一题20201202(217. 存在重复元素)

简介: 存在重复元素

217. 存在重复元素

10.jpg

image-20201202135946680

思路



首先,要确定一个元素是否出现多次,那么肯定O(n)的复杂度是少不了的,因为肯定需要一次遍历.
一次遍历的话,还需要记住每个数字出现的次数,所以可以考虑用hash表记录数字出现的数字。
看了题解也没有更好的解法了,暴力法更是O(n²)的复杂度,还有一种排序后遍历,复杂度也很高。

golang解法



func containsDuplicate(nums []int) bool {
    hash := make(map[int]int)
    for _, n := range nums {
        hash[n] += 1
        if hash[n] > 1 {
            return true
        }
    }
    return false
}

11.jpg

image-20201202140410924

Python解法 set



class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        return not len(nums) == len(set(nums))

12.jpg

image-20201202140542147


Python hash表



class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        mp = dict()
        for n in nums:
            mp[n] = mp.get(n, 0) + 1
            if mp[n] > 1:
                return True
        return False

13.jpg

image-20201202140749718




相关文章
|
索引
【Leetcode -217.存在重复元素 -Leetcode-219.存在重复元素Ⅱ】
【Leetcode -217.存在重复元素 -Leetcode-219.存在重复元素Ⅱ】
40 0
|
机器学习/深度学习 Cloud Native
【刷题日记】剑指 Offer II 083. 没有重复元素集合的全排列
本次刷题日记的第 35 篇,力扣题为:剑指 Offer II 083. 没有重复元素集合的全排列 ,中等
|
6月前
|
索引
leetcode-219:存在重复元素 II
leetcode-219:存在重复元素 II
31 0
|
6月前
leetcode-217:存在重复元素
leetcode-217:存在重复元素
42 0
|
6月前
|
C#
【力扣每日一题/02】349. 两个数组的交集
【力扣每日一题/02】349. 两个数组的交集
|
机器学习/深度学习
LeetCode存在重复元素快乐做题
LeetCode存在重复元素快乐做题
62 0
两个数组的交集(力扣刷题)
两个数组的交集(力扣刷题)
【C剑指offer】03数组中的重复元素
【C剑指offer】03数组中的重复元素
78 0
【C剑指offer】03数组中的重复元素
|
算法 Java
力扣LeetCode初级算法(存在重复元素)
力扣LeetCode初级算法(存在重复元素)
78 0
力扣LeetCode初级算法(存在重复元素)