题解 | #杨辉三角#完全打印出来了三角形,恶心的OOM

杨辉三角的变形

https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            printPosition(in);
        }
    }
    public static void printPosition(Scanner in) {
        int l = in.nextInt();
        //用二维数组把三角装进去,数组大小取决于第几行为界限
        int[][] arr = new int[l][2 * l +1];//根据三角的特点算出给定高度的底边
        arr[0][l] = 1;//先确定顶点
        for (int i = 1; i < l; i++) {
            for (int j = 1; j < 2 * l ; j++) {
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j] + arr[i - 1][j + 1];
            }
        }
        //这一步主要是为了打印成果
        // for (int[] ints : arr) {
        //     for (int anInt : ints) {
        //         System.out.print(anInt+"  ");
        //     }
        //     System.out.println();
        // }
        //遍历二维数组,除了0之外的第一个偶数取出来,并打印当时的序列,然后break
        int res=-1;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if(arr[i][j]!=0&&arr[i][j]%2==0){
                    res = j;
                    break;
                }
            }
        }
        System.out.println(res);
    }
}

全部评论
到底是华为的题啊,就是喜欢脑筋急转弯。我们这些老实人可真受罪。
点赞 回复 分享
发布于 2023-01-12 18:38 陕西

相关推荐

12-19 22:04
武汉大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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