本文主要是介绍Leetcode3238. 求出胜利玩家的数目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Every day a Leetcode
题目来源:3238. 求出胜利玩家的数目
解法1:计数
遍历 pick,用一个 n×11 大小的矩阵,统计每个玩家得到的每种颜色的球的个数。
遍历每个玩家,如果该玩家至少有一种颜色的球大于玩家编号,则把答案加一。
代码:
/** @lc app=leetcode.cn id=3238 lang=cpp** [3238] 求出胜利玩家的数目*/// @lc code=start
class Solution
{
public:int winningPlayerCount(int n, vector<vector<int>> &pick){vector<vector<int>> cnt(n, vector<int>(11, 0));for (auto &p : pick)cnt[p[0]][p[1]]++;int ans = 0;for (int i = 0; i < n; i++){bool judge = false;for (int j = 0; j < cnt[i].size(); j++)if (cnt[i][j] > i)judge = true;if (judge)ans++;}return ans;}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(nU+m),其中 m 是数组 pick 的长度,U 是 yi 的最大值。
空间复杂度:O(nU),其中 U 是 yi 的最大值。
这篇关于Leetcode3238. 求出胜利玩家的数目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!