题解 | #井字棋#

井字棋

http://www.nowcoder.com/practice/e1bb714eb9924188a0d5a6df2216a3d1

横向判断、纵向判断、主对角线判断、副对角线判断

import java.util.*;

public class Board {
    public boolean checkWon(int[][] board) {
        int len = board.length;//棋盘的横向或纵向长度
        int sum = 0;
        //判断横向
        for(int i = 0; i < len; ++i){
            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){
            sum = 0;
            for(int j = 0; j < len; ++j){
                sum += board[i][j];
            }
            if(sum == len){
                return true;
            }
        }
        //主对角线
        sum = 0;
        for(int i = 0; i < len; ++i){
            sum += board[i][i];
        }
        if(sum == len){
            return true;
        }
        //副对角线
        sum = 0;
        for(int i = 0; i < len; ++i){
            sum += board[i][len - i - 1];
        }
        if(sum == len){
            return true;
        }
        //都不满足执行false
        return false;
    }
}
全部评论
哈喽哈喽,你这代码判断横向和纵向代码条件是一样的呀。应该把判断纵行代码中的:sum += board[i][j]改为sum += board[j][i];逻辑才通哟!
2 回复 分享
发布于 2022-09-03 11:19 江西
是的,谢谢指正!!!
点赞 回复 分享
发布于 2022-09-17 18:20 陕西

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务