来自读者的催更
来自一位正在参加校招的小伙伴的点题。
那我还能说什么,安排。
不管你是什么三角,在小福同学的眼里,你都是我的主角
老规矩
先来看下题目
杨辉三角
从图中可以看出来,其实是想考察我们对数组的理解程度,那我们就画出一个二位数组来:
我们把这个二维数组定义为
result
,每一行用
row
来表示 这样我们就可以比较方便的得出两个重要的结论
- result[i][0] = 1,result[i][i] = 1. 也就是数字的第0列和对角线的数字都是1
- row[j] = result[i-1][j-1] + result[i-1][j];也就是说除了结论1里面的其他位置的数字,都是它上面和上面的左边的和
如果没看明白的话,就看下这个动图
撸代码
有了上面的两个结论,也就有了思路了,代码可以干起来了「java代码」。
代码里面都写了注释了,应该比较好懂吧,为了更容易懂,上面代码特地用了
c语言
的二维数组样式,并没有有java里面的
List
,希望可以帮到需要的人。
题外话
其实这还真有点像做高中的数学题,给你一堆条件,大部分都是隐含条件,如果把隐含条件都拿到了,这一题已经做对一半了。
另外哈,这题可以用动态规划来做,但是今天肯定写不完了,后面动态规划会单独拎出来讲,毕竟我现在对动态规划也不太熟练。
现在已经晚上11点26分了,
小爱同学
已经提醒我去睡觉了,大家晚安。