首页 > 试题广场 >

井字棋

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

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

测试样例:
[[1,0,1],[1,-1,-1],[1,-1,0]]
返回:true
头像 牛客169974873号
发表于 2022-04-29 19:34:18
一个双层for循环 import java.util.*; public class Board { public boolean checkWon(int[][] board) { int len = board.length;//棋盘的横向或纵向长度 i 展开全文
头像 牛客169974873号
发表于 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 展开全文
头像 脑瓜子嗡嗡的狼人杀上帝
发表于 2022-04-19 09:20:31
public class Board { public boolean checkWon(int[][] board) { /* 当前玩家获胜条件一定是: 1、行全为1,行之和为3 2、列全为1, 列之和为3 3 展开全文
头像 牛客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
头像 杨沛东
发表于 2024-06-22 00:18:12
import java.util.*; public class serve { public static boolean checkWon(int[][] board) { int[] chessman = new int[9]; int s = 0; 展开全文
头像 果粒陈33
发表于 2022-06-19 17:50:00
# -*- coding:utf-8 -*- class Board: def checkWon(self, board): # write code here # 最笨的办法,每种情况都考虑,逐一排查 if board[0][0] + bo 展开全文