有一位的题解跟我的很像,就是加个方法的那位。

有一说一,他的看着更好理解。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        int n = in.nextInt();
        int[][] get = new int[n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                get[i][j] = in.nextInt();
            }
        }
		/*
			看上下注释去理解
			0 1 2
			0 1 2
			0 1 2
		*/
        boolean isTriangle = false;
        for (int i = 0; i < n; i++) {
            if (get[i][0] != 0) continue;
            boolean isFind = true;
            for (int j = i; j < n; j++) {	// 当第一位为0的时候执行这个。
			  	// 示例
                // j = 1, k < 1
                // j = 2, k < 2
                for (int k = 0; k < j; k++) {
                    if (get[j][k] != 0) {	// 一旦有不是0的,就卡掉,后面的都不用看了
					  isFind = false;
					  break;
					}
                }
            }
            if (isFind) {
                isTriangle = true;
                break;
            }
        }

        if (isTriangle) {
            System.out.println("YES");
        } else System.out.println("NO");

    }
}