Re: [闲聊] 每日LeetCode

楼主: yam276 ('_')   2023-10-05 14:37:34
※ 引述《ZooseWu (动物园 公告)》之铭言:
: 思路差不多
: 但是我看不懂yam的程式码 哭了
快速使用HashMap:
*nums_map.entry(num).or_insert(0) += 1;
.entry(num) : 寻找key(num)-value是存在
.or_insert(0) : key(num)-value存在
就会给你value的可变引用并进行后面操作(+=1)
key(num)-value不存在
则会用初始值(0)建立一对key(num)-value
并给你value的可变引用
再用这个可变引用做后面操作(+=1)
从map根据value设条件取得key:
let result: Vec<i32> = nums_count_map
.iter()
取得iter
.filter(|&(_, &value)| value > times)
lambda取得value > n/3 的 pair
.map(|(&key, _)| key)
从pair取得key
.collect();
回传 把key放进result: Vec<i32>
作者: ZooseWu (N5)   2023-10-05 14:39:00
那为什么是0ms
楼主: yam276 ('_')   2023-10-05 14:42:00
可能HashMap效率高吧 但这语言参考解参考真的很烦因为我除了 for一次之外都是在操作HashMap
作者: ZooseWu (N5)   2023-10-05 14:48:00
for一次正常而言就不会是0ms了吧
楼主: yam276 ('_')   2023-10-05 14:52:00
不知道他怎么算的

Links booklink

Contact Us: admin [ a t ] ucptt.com