存在重复元素(力扣 | 初级算法 | 数组 | Python)

一、题目描述

在这里插入图片描述

二、代码解析

解法一:先排序然后再判断是否存在两个相邻的数。

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        nums.sort()
        for i in range(1,len(nums)):
            if(nums[i]==nums[i-1]):
                return True
        return False

# solution = Solution()
# result  = solution.containsDuplicate([1,2,3,1])
# print(result)

拿到这个题后,最容易想到的就是用两个循环来逐个判断是否存在两个相同的数,但这无疑会超时。因此,接着就想到先排序,再用一个循环来判断是否存在两个相同的数,避免超时。

解法二:先用set函数进行转换,再判断长度。

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        if len(nums)==len(set(nums)):
            return False
        else:
            return True

# solution = Solution()
# result  = solution.containsDuplicate([1,2,3,1])
# print(result)

注:Python中的set函数相当于取重操作。

解法三:哈希表

哈希算法还没研究明白,后续想明白了会来补充的…

三、总结

官方的题解可以点这里

猜你喜欢

转载自blog.csdn.net/qq_40968179/article/details/128515526