又是老生常谈的杨辉三角,我感觉这个题在各种语言里应该都是最常见基础的考题吧(虽然弟弟的我并没有很快算出来) 最后在一定的借鉴下也算码出来了(我好菜啊)
题目:
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
解答:
不难看出这是个二维数组,我的思路也是采用二维数组的方法,应该很利于新手理解
错误示范:
class Solution {
public List generate(int numRows) {
int[][] array = new int[numRows][numRows];
List list = new ArrayList();
for (int i = 0; i < numRows; i++) {
array[i][0] = 1;
list.add(array[i][0]);
for (int j = 1; j <= i; j++) {
array[i][j] = array[i-1][j-1] +array[i-1][j];
list.add(array[i][j]);
}
}
return list;
}
}
这是我一开始想出来的,运行后发现结果是一个一维数组,是因为所有的元素都是直接add进去的,而不是以分开的数组的形式
以下是正确答案:
千里之行始于足下,希望2020继续加油,能找到合适的工作(此处@端点网络)。
coder们新年快乐
2020.1.1