I struggled with problem 1535 (Find the Winner of an Array Game) on LeetCode. I decided to use the top solution, which looked like this:
int getWinner(vector<int>& A, int k) {
int cur = A[0], win = 0;
for (int i = 1; i < A.size(); ++i) {
if (A[i] > cur) {
cur = A[i];
win = 0;
}
if (++win == k) break;
}
return cur;
}
However, I implemented it like this:
class Solution {
public:
int getWinner(vector<int>& arr, int k) {
int win = arr[0];
int numsWon = 0;
for(int i = 1; i < arr.size(); i++) {
if(arr[i] > win) {
numsWon = 0;
win = arr[i];
}
if(numsWon++ == k) break;
}
return win;
}
};
The code didn't work until I switched the ++
operators. Does anyone know why?