有一位的题解跟我的很像,就是加个方法的那位。
有一说一,他的看着更好理解。
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"); } }