Paste_Image.png
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:
这次作业不是很难,就是Array操作。
**
总结:终于到40题了。其实,如果一开始刷简单题,那么很快就能冲到80题。但我还是稳扎稳打吧。
**
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;
}
}
这次代码写的比上次简单多了。简单题。
我记得有道题,也是这样的三角形,然后要求从顶端到底部的和最小值。我还记得解法的。
Anyway, Good luck, Richardo!