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;
}
}
思考
以后的杨辉三角就按照这个来写啦。