#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)
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
}
}