My code:
import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
if (numRows <= 0)
return result;
List<Integer> newList = new ArrayList<Integer>();
newList.add(1);
result.add(newList);
if (numRows == 1)
return result;
newList = new ArrayList<Integer>();
newList.add(1);
newList.add(1);
result.add(newList);
if (numRows == 2)
return result;
int[] number = new int[numRows];
number[0] = 1;
number[1] = 1;
for (int i = 3; i <= numRows; i++) {
int[] newNumber = new int[numRows];
newList = new ArrayList<Integer>();
for (int j = 0; j < i; j++) {
if (j == 0) {
newList.add(1);
newNumber[j] = 1;
}
else if (j == i - 1) {
newList.add(1);
newNumber[j] = 1;
}
else {
newList.add(number[j - 1] + number[j]);
newNumber[j] = number[j - 1] + number[j];
}
}
number = newNumber;
result.add(newList);
}
return result;
}
public static void main(String[] args) {
Solution test = new Solution();
System.out.println(test.generate(5));
}
}
My test result:
這次作業(yè)不是很難鞍帝,就是Array操作。
**
總結(jié):終于到40題了舷暮。其實(shí)态罪,如果一開始刷簡(jiǎn)單題,那么很快就能沖到80題下面。但我還是穩(wěn)扎穩(wěn)打吧复颈。
**
Anyway, Good luck, Richardo!
My code:
public class Solution {
public List<List<Integer>> generate(int numRows) {
ArrayList<List<Integer>> ret = new ArrayList<List<Integer>>();
if (numRows <= 0)
return ret;
ArrayList<Integer> tri = new ArrayList<Integer>();
tri.add(1);
ret.add(tri);
for (int i = 1; i < numRows; i++) {
tri = new ArrayList<Integer>();
tri.add(1);
for (int j = 1; j < i; j++) {
List<Integer> upTri = ret.get(i - 1);
tri.add(upTri.get(j - 1) + upTri.get(j));
}
tri.add(1);
ret.add(tri);
}
return ret;
}
}
這次代碼寫的比上次簡(jiǎn)單多了。簡(jiǎn)單題沥割。
我記得有道題耗啦,也是這樣的三角形,然后要求從頂端到底部的和最小值机杜。我還記得解法的帜讲。
Anyway, Good luck, Richardo!