Skip to main content
Back to problems
#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)
LeetCode
solution.rs
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
  }
}