题目:
分析:一道逻辑分析题。
//还是具有一定的思维挑战性,但是对本人来说分分析就ook啦!
//首先明确,不会有第二轮,因为到了最大的数整个问题就会终止了。
//换到首个位置算一次胜利,这个是本题的难点。
代码:
class Solution {
public:
int getWinner(vector<int>& arr, int k) {
int maxx=arr[0];
for(int i=0;i<arr.size();i++) maxx=max(maxx,arr[i]);
int c=0;//胜利数
int t=arr[0];//当前数
if(t==maxx) return t;
for(int i=1;i<arr.size();i++)
{
if(maxx==arr[i]) return maxx;
if(arr[i]<t)
{
c++;
if(c==k) return t;
}
else{
c=1;
t=arr[i];
if(c==k) return t;
}
}
return -1;
}
};