#3847
Medium Algorithms Find the score difference in a game
Array Simulation
72.1% acceptance
Mar 15, 2026
45
4
You are given an integer array nums, where nums[i] represents the points scored in the ith game.
Two players. First player is initially active.
Rules for each game i (applied sequentially):
1. If nums[i] is odd, swap active/inactive.
2. If i is a 6th game (indices 5, 11, 17, ...), swap active/inactive.
3. Active player gains nums[i] points.
Return first player's score minus second player's score.
Solution
Rust
Time O(n)
Space O(1)
impl Solution {
pub fn score_difference(nums: Vec<i32>) -> i32 {
let mut first_active = true;
let mut score1 = 0i32;
let mut score2 = 0i32;
for (i, &val) in nums.iter().enumerate() {
if val % 2 == 1 {
first_active = !first_active;
}
if (i + 1) % 6 == 0 {
first_active = !first_active;
}
if first_active {
score1 += val;
} else {
score2 += val;
}
}
score1 - score2
}
}