本文主要是介绍Leetcode周赛200 5476. 找出数组游戏的赢家,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
因为输掉的数字会放到最后面,那么以后肯定不能回到最前面来,所以直接不管。
维护当前胜利数字对应指针,与下一个要比较数字的指针,然后维护胜利数字与胜利回合就好了。如果比较完一轮都没有k,那肯定是最大数字最后获胜。
class Solution {
public:int getWinner(vector<int>& arr, int k) {int n = arr.size();int mx = 0;for(int i = 0;i < n;i++) {mx = max(mx,arr[i]);}if(k > n) {return mx;} else {int now = arr[0]; //当前数字int cnt = 0;//连胜回合for(int i = 1;i < n;i++) {if(now > arr[i]) {cnt++;} else {now = arr[i];cnt = 1;}if(cnt == k) {return now;}}return mx;}}
};
这篇关于Leetcode周赛200 5476. 找出数组游戏的赢家的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!