LeetCode 1394. 找出数组中的幸运数(map计数)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1394. 找出数组中的幸运数(map计数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
- 2.1 map計數
- 2.2 Python3解
1. 題目
在整數數組中,如果一個整數的出現頻次和它的數值大小相等,我們就稱這個整數為「幸運數」。
給你一個整數數組 arr,請你從中找出并返回一個幸運數。
如果數組中存在多個幸運數,只需返回 最大 的那個。
如果數組中不含幸運數,則返回 -1 。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-lucky-integer-in-an-array
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
2.1 map計數
- map計數,map有序
20 ms 10.4 MB
2.2 Python3解
class Solution:def findLucky(self, arr: List[int]) -> int:ans = sorted(filter(lambda x :x[0]==x[1], zip(set(arr),map(arr.count,set(arr)))), key = lambda x:x[0])return ans[-1][0] if ans else -1;72 ms 13.5 MB
- zip(set(arr),map(arr.count,set(arr)) zip打包成:set去重的集合,及對應的個數map
- filter:取出 滿足 lambda 表達式的x[0]==x[1](元素==其頻次)
- sorted 排序,key按照元素大小升序
- 返回ans[-1][0] if ans else -1,最后一個【-1】最大的,【0】表示元素,ans空返回-1
總結
以上是生活随笔為你收集整理的LeetCode 1394. 找出数组中的幸运数(map计数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 297. 二叉树的序列
- 下一篇: LeetCode 1171. 从链表中删