414. 第三大的数|||118. 杨辉三角

414. 第三大的数

题目

给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。

代码

class Solution {
    public int thirdMax(int[] nums) {
        long a=Long.MIN_VALUE,b=Long.MIN_VALUE,c=Long.MIN_VALUE;
        for(long num: nums){
            if(num>a){
                c=b;
                b=a;
                a=num;
            }else if(a>num && num>b){
                c=b;
                b=num;
            }else if(b>num && num>c){
                c=num;
            }
        }
        return c==Long.MIN_VALUE? (int)a:(int)c;
    }
}

思考

这道题我居然题目都没看明白,第三大的数。脑子糊涂了,还一直觉得[3,2,1]第三大数字怎么是1不是3?我真是傻了。
官解TreeSet 底层数据结构是红黑树,怪不得代码那么简单

118. 杨辉三角

题目

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

代码

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res=new ArrayList<List<Integer>>();
        for(int i=0;i<numRows;i++){
            List<Integer> row=new ArrayList<Integer>();
            for(int j=0;j<=i;j++){
                if(j==0 || j==i)
                    row.add(1);
                else
                    row.add(res.get(i-1).get(j-1)+res.get(i-1).get(j));
            }
            res.add(row);
        }
        return res;
    }
}

思考

以后的杨辉三角就按照这个来写啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值