当前位置: 首页 > 后端技术 > Python

力扣-1394.Findtheluckynumberinthearray【Python】

时间:2023-03-26 11:55:21 Python

LeetCode1394.FindLuckyIntegerinanArrayFindtheluckynumberinthearray【Easy】【Python】【暴力】题目LeetCode给定一个整数数组arr,一个幸运整数是一个整数,它在数组中的频率等于它的值。返回数组中的幸运整数。如果有多个幸运整数,则返回其中最大的一个。如果没有幸运整数返回-1。示例1:输入:arr=[2,2,3,4]输出:2解释:数组中唯一的幸运数字是2,因为frequency[2]==2。示例2:输入:arr=[1,2,2,3,3,3]Output:3Explanation:1,2,3都是幸运数字,返回其中最大的一个。Example3:Input:arr=[2,2,2,3,3]Output:-1Explanation:数组中没有幸运数字。例4:输入:arr=[5]输出:-1例5:输入:arr=[7,7,7,7,7,7,7]输出:7约束:1<=arr.length<=5001<=arr[i]<=500问题出在整数数组上。如果一个整数出现的频率等于它的值,我们称这个整数为“幸运数”。给你一个整型数组arr,请你从中找出并返回一个幸运数字。如果数组中有多个幸运数字,只返回最大的一个。如果数组中没有幸运数字,则返回-1。示例1:输入:arr=[2,2,3,4]输出:2解释:数组中唯一的幸运数字是2,因为值2也出现了2次。示例2:输入:arr=[1,2,2,3,3,3]输出:3解释:1、2、3都是幸运数字,只需要返回其中最大的3个。示例3:输入:arr=[2,2,2,3,3]输出:-1解释:数组中没有幸运数字。示例4:输入:arr=[5]输出:-1示例5:输入:arr=[7,7,7,7,7,7,7]输出:7提示:1<=arr.length<=5001<=arr[i]<=500思路暴力自定义排序,然后暴力解决。Python3codefromtypingimportListimportcollectionsclassSolution:deffindLucky(self,arr:List[int])->int:cnt=collections.Counter(arr)#先按频率排序,再按值排序res=sorted(cnt.items(),key=lambdax:(x[1],x[0]),reverse=True)foriinrange(len(res)):#频率等于值ifres[i][0]==res[i][1]:返回res[i][0]返回-1GitHublinkPython