题目:
给定一个二维数组board,代表当前棋盘,其中元素为1的代表是当前玩家的棋子,为0表示没有棋子,为-1代 表是对方玩家的棋子。
测试样例:
[[1,0,1],[1,-1,-1],[1,-1,0]]
返回:true
解题思路:
计算每一横行值之和 每一竖列值之和 两个对角线值之和 看看这些和是否等于3 等于三则是玩家胜利
代码展示:
#include <iostream>
#include <vector>
using namespace std;
class Board {
public:
bool checkWon(vector<vector<int> > board) {
for (int i = 0; i < 3; i++){
int sum_row = 0;
int sum_cow = 0;
for (int j = 0; j < 3; j++){
sum_row += board[i][j];
sum_cow += board[j][i];
}
if (sum_row == 3){
return true;
}
if (sum_cow == 3){
return true;
}
}
int first = 0;
int second = 0;
for (int i = 0; i < 3; i++) {
first += board[i][i];
second += board[i][3 - 1 - i];
}
if (first == 3) {
return true;
}
if (second == 3) {
return true;
}
return false;
}
};