题解 | #井字棋#

井字棋

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

import java.util.*;

public class Board {
    public boolean checkWon(int[][] board) {
        // write code here
        int n=board.length;//获取二维数组的长度
        int sum=0;//统计某1行或某1列的数字和,看等不等于n
        //1统计行 
        for(int i=0;i<n;i++){
            sum=0;//先置0,因为上一次sum有数据
            for(int j=0;j<n;j++){
                sum+=board[i][j]; //统计和 行号不变列号变
            }
            if(sum==n){  //最后出来(从一行中出来),能对上n,则代表当前行,是一条线
            return true;
            }      
        } 
        //2统计列
        for(int i=0;i<n;i++){
            sum=0;//先置0,以免有数据残留
            for(int j=0;j<n;j++){
                sum+=board[j][i];//列号不变,行号变,所以这里行是j
            }
            if(sum==n){
                return true; //有列满足,则为TRUE
            }
        }
        //3,统计主对角线
        sum=0;//先在外面清空,不能在for循环里面清空
        for(int i=0;i<n;i++){
            sum+=board[i][i];//因为下标一样
        }
        if(sum==n){
            return true;//出来后,主对角线满足条件,返回TRUE
        }

        //统计副对角线
        sum=0; //先清0
        for(int i=0;i<n;i++){
            sum+=board[i][n-1-i];//下标和为n-1
        }
        if(sum==n){
            return true;//副对角线满足
        }
        return false;//走到这里都不满足,则为FALSE

          
    }
}

全部评论

相关推荐

09-08 17:17
同济大学 Java
狗不理fe:里面的人劝一句,别来虾,我们部门24校招生淘汰率30%,还有一些人说有一年保护期,不可能!!!
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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