首页 > 试题广场 >

井字棋

[编程题]井字棋
  • 热度指数:9779 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。

测试样例:
[[1,0,1],[1,-1,-1],[1,-1,0]]
返回:true
头像 2306310871耿雨龙
发表于 2022-04-29 19:34:18
一个双层for循环 import java.util.*; public class Board { public boolean checkWon(int[][] board) { int len = board.length;//棋盘的横向或纵向长度 i 展开全文
头像 脑瓜子嗡嗡的狼人杀上帝
发表于 2022-04-19 09:20:31
public class Board { public boolean checkWon(int[][] board) { /* 当前玩家获胜条件一定是: 1、行全为1,行之和为3 2、列全为1, 列之和为3 3 展开全文
头像 2306310871耿雨龙
发表于 2022-04-29 19:33:07
横向判断、纵向判断、主对角线判断、副对角线判断 import java.util.*; public class Board { public boolean checkWon(int[][] board) { int len = board.length;//棋盘的横向或 展开全文
头像 阿贝尔的日记
发表于 2022-09-23 18:41:02
井字棋 井字棋 /* 2022年09月21日 11:43:09 1 0 1 1 -1 -1 1 -1 0 利用sum,累加行、列、对角线的1,判断累加和是否和行、列的size相等 */ class Board { public: bool checkWon(vector<ve 展开全文
头像 牛客709888295号
发表于 2022-04-12 21:30:44
思路: 井字棋有四种情况表示当前玩家获胜,1代表当前玩家棋子 1.行全为1, 即行的和为3 列全为1, 列的和为3 主对角全为1--对角和为3 , 副对角全为1--对角和为3 如果扩展为N*N的话,判断和是否等于N public class Board { public boole 展开全文
头像 喜欢可抵岁月漫长
发表于 2023-07-02 12:20:02
import java.util.*; public class Board { public boolean checkWon(int[][] board) { // write code here int n=board.length;//获取二维数组的 展开全文
头像 牛客116908456号
发表于 2024-07-19 16:02:28
首先计算棋盘的尺寸,假设棋盘是方形的,因此行数等于列数通过循环棋盘中的每行数值,通过all函数判断每行的所有元素是否都为1. 再判断每列中的元素是否都为1判断对角线[i][i]的元素是否都为1判断副对角线[i][n-1-i]的元素是否都为1若都不满足,返回False
头像 Dfine
发表于 2025-07-07 02:56:33
class Board { public: bool checkWon(vector<vector<int> > board) { // write code here for(int i=0;i< board.size();i+ 展开全文
头像 黑眼X
发表于 2025-09-27 10:32:14
import java.util.*; public class Board { public boolean checkWon(int[][] board) { boolean won = false; for (int i = 0; i < boa 展开全文
头像 牛客710153440号
发表于 2025-09-04 21:03:59
class Board { public: bool checkWon(vector<vector<int> > board) { // write code here int row = board.size(); i 展开全文