前言
每天和你一起刷 LeetCode 每日一题~
本期看点:算法基本功之哈希计数
LeetCode 启动!
题目:求出胜利玩家的数目
代码与解题思路
先读题:题目给了 n 个玩家,和一个 pick 数组,pick 数组中 x 表示玩家 x 获得了一个 y 颜色的球
当出现玩家 i 获得 i+1 数量的同颜色球的情况,则胜利玩家 + 1
说人话就是,用哈希计数当前玩家拿的每种颜色的球分别有多少个,如果符合条件就让胜利玩家+1,代码如下:
(注:在题目的提示中,颜色的取值范围是 0~10)
go
func winningPlayerCount(n int, pick [][]int) (ans int) {
cnt := make([][11]int, n) // 总共有 10 种颜色
for _, p := range pick {
cnt[p[0]][p[1]]++
}
for i, v := range cnt {
for _, c := range v {
if i < c {
ans++
break // 一个玩家只能赢一次
}
}
}
return ans
}
每天进步一点点,我们明天不见不散~
可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。