[Oracle] LeetCode 348 Design Tic-Tac-Toe
Assume the following rules are for the tic-tac-toe game on an n x n
board between two players:
- A move is guaranteed to be valid and is placed on an empty block.
- Once a winning condition is reached, no more moves are allowed.
- A player who succeeds in placing n of their marks in a horizontal, vertical, or diagonal row wins the game.
Implement the TicTacToe
class:
TicTacToe(int n)
Initializes the object the size of the boardn
.int move(int row, int col, int player)
Indicates that the player with id player plays at the cell (row, col) of the board. The move is guaranteed to be a valid move.
Solution
按照正常思路,对每行,每列,对角线都 的话,每次都得 . 但实际上我们只关心出现的次数是否为 即可,所以为每个 分别开个 记录即可
点击查看代码
class TicTacToe { private: vector<vector<int>> R, C; vector<int> diag, r_diag; public: TicTacToe(int n) { R = vector<vector<int>> (n, vector<int>(3)); C = vector<vector<int>> (n, vector<int>(3)); diag = vector<int> (3); r_diag = vector<int> (3); } int move(int row, int col, int player) { int cnt; R[row][player]++; C[col][player]++; cnt = max(R[row][player], C[col][player]); if(row==col)diag[player]++; if(row+col==R.size()-1)r_diag[player]++; cnt=max(cnt, max(diag[player], r_diag[player])); if(cnt==R.size())return player; else return 0; } }; /** * Your TicTacToe object will be instantiated and called as such: * TicTacToe* obj = new TicTacToe(n); * int param_1 = obj->move(row,col,player); */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端