题解 | #杨辉三角的变形#模拟法(非找规律法),遍历最后一行,找到第一个偶数,输出位置即可

杨辉三角的变形

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

import java.util.*;
public class Main{
    public static List<List<Integer>> res = new ArrayList<>();
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt()){
            int n = sc.nextInt();
            res.clear();
            for(int i = 0;i<n;i++){
                List<Integer> row = new ArrayList<>();
                for(int j = 0;j< 2*i+1;j++){
                    if(j==0 || j ==2*i){
                        row.add(1);//首尾
                    }else if(j==1){//第二个
                        if(i==1){
                            row.add(1);//第二行的第二个比较特殊是1
                        }else{
                            row.add(res.get(i-1).get(0) + res.get(i-1).get(1));//其他行第二个
                        }
                    }else if(j==2*i-1){
                        row.add(res.get(i-1).get(2*(i-1)) + res.get(i-1).get(2*(i-1)-1));//倒数第二个
                    }else{
                        row.add(res.get(i-1).get(j) + res.get(i-1).get(j-1) + res.get(i-1).get(j-2));//中间的
                    }
                }
                res.add(row);
            }
            boolean flag = false;
            for(int i=0;i<res.get(n-1).size();i++){
                if(res.get(n-1).get(i) % 2 == 0){
                    System.out.println(i+1);
                    flag = true;
                    break;
                }
            }
            if(!flag){
                System.out.println(-1);
            }
        }

    }
}
全部评论
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 输入测试的最大数时会报内存溢出
1
送花
回复
分享
发布于 2021-12-21 12:24
算是一个通用解法,但是这个题目有点变态,n的范围在十亿级,全部算出来估计会超时或者内存溢出。
2
送花
回复
分享
发布于 2022-05-25 10:54
秋招专场
校招火热招聘中
官网直投
内存肯定会溢出
点赞
送花
回复
分享
发布于 2023-03-10 13:50 北京
超时的。过不了
点赞
送花
回复
分享
发布于 2023-04-15 18:55 湖北

相关推荐

头像
点赞 评论 收藏
转发
4 1 评论
分享
牛客网
牛客企业服务