力扣刷题 day50:10-20

1.存在重复元素

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。力扣刷题 day50:10-20_第1张图片

方法一:集合去重 

#方法一:集合去重
def containsDuplicate(nums):
    return len(nums)!=len(set(nums))  #判断去重前后长度是否相等

方法二:字典储存 

#方法二:字典储存
def containsDuplicate(nums):
    dic={}
    for i in nums:
        if dic.get(i):
            return True  #找到了已经出现过
        dic[i]=1 #不存在
    return False

方法三:排序 

#方法三:排序
def containsDuplicate(nums):
    nums.sort() #先排序,排序后重复元素一定相邻
    for i in range(len(nums)-1):
        if nums[i]==nums[i+1]:
            return True
    return False

2.第三大的数 

给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。力扣刷题 day50:10-20_第2张图片

方法一:去重+排序

#方法一:去重+排序
def thirdMax(nums):
    nums=list(set(nums)) #去重后转成列表
    nums=sorted(nums) #排序
    if len(nums) < 3:
        return nums[-1]
    else:
        return nums[-3]

你可能感兴趣的:(力扣刷题,leetcode,算法,数据结构)