首页 > 代码库 > 井字棋
井字棋
题目描述
对于一个给定的井字棋棋盘,请设计一个高效算法判断当前玩家是否获胜。
给定一个二维数组board,代表当前棋盘,其中元素为1的代表是当前玩家的棋子,为0表示没有棋子,为-1代表是对方玩家的棋子。
测试样例:
[[1,0,1],[1,-1,-1],[1,-1,0]]
返回:true
//判断每行每列每个对角线上的值是否都为1
class Board { public: bool checkWon(vector<vector<int> > board) { int len = board.size(); //判断对角线 int tmp = 0; for(int i = 0;i < len;i++){ tmp += board[i][i]; } if(tmp == len) return true; //判断对角线 for(int i = 0;i < len;i++){ tmp += board[i][len-i-1]; } if(tmp == len) return true; //判断行 for(int i = 0;i < len;i++){ int sum = 0; for(int j = 0;j <len;j++) sum += board[i][j]; if(sum == len) return true; } //判断列 for(int i = 0;i < len;i++){ int sum = 0; for(int j = 0;j < len;j++) sum += board[i][j]; if(sum == len) return true; } return false; } };
井字棋
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。