Skip to main content
Back to problems
#348
Medium Algorithms

Design tic tac toe

Array Hash Table Design Matrix Simulation
58.8% acceptance
Mar 31, 2026
2167
120

No description available.

Solution

Rust
Time O(1)
Space O(n)
LeetCode
solution.rs
struct TicTacToe {
  rows: Vec<i32>,
  cols: Vec<i32>,
  diag: i32,
  anti_diag: i32,
  n: i32,
}

impl TicTacToe {
  fn new(n: i32) -> Self {
    TicTacToe {
      rows: vec![0; n as usize],
      cols: vec![0; n as usize],
      diag: 0,
      anti_diag: 0,
      n,
    }
  }

  fn make_a_move(&mut self, row: i32, col: i32, player: i32) -> i32 {
    let add = if player == 1 { 1 } else { -1 };
    let r = row as usize;
    let c = col as usize;
    self.rows[r] += add;
    self.cols[c] += add;
    if row == col {
      self.diag += add;
    }
    if row + col == self.n - 1 {
      self.anti_diag += add;
    }
    if self.rows[r].abs() == self.n
      || self.cols[c].abs() == self.n
      || self.diag.abs() == self.n
      || self.anti_diag.abs() == self.n
    {
      return player;
    }
    0
  }
}