首页 > 代码库 > LeetCode Pascal's Triangle II

LeetCode Pascal's Triangle II

Given an index k, return the kth row of the Pascal‘s triangle.

For example, given k = 3,
Return [1,3,3,1].

Note:
Could you optimize your algorithm to use only O(k) extra space?

 

解法先参考原来第一题的代码,稍微修改就行。

public class Solution {            List<List<Integer>> lastNumberlist = new ArrayList<List<Integer>>();    public List<Integer> getRow(int rowIndex) {        rowIndex++;        if (rowIndex==0) {        return null;        }        ArrayList<Integer> list=new ArrayList<>();        int num1,num2;        list.add(1);        lastNumberlist.add(list);        if (rowIndex==1) {            return lastNumberlist.get(lastNumberlist.size()-1);        }        list=new ArrayList<>();        list.add(1);        list.add(1);        lastNumberlist.add(list);        if (rowIndex==2) {            return lastNumberlist.get(lastNumberlist.size()-1);        }        for (int i = 3; i <=rowIndex ; i++) {                int[] newline=new int[i];                for (int j = 0; j <= i/2; j++) {                    if (j==0) {                                        newline[j]=1;                        newline[i-1-j]=1;                    }else {                        num1=lastNumberlist.get(lastNumberlist.size()-1).get(j);                        num2=lastNumberlist.get(lastNumberlist.size()-1).get(j-1);                        newline[j]=num1+num2;                        newline[i-1-j]=num1+num2;                            }                }                list=new ArrayList<>();                for (int j : newline) {                    list.add(j);                }                                lastNumberlist.add(list);        }        return lastNumberlist.get(lastNumberlist.size()-1);    }}

 

LeetCode Pascal's Triangle II