leetcode----------Pascal's Triangle II

題目

Pascal's Triangle II

經過率 29.8%
難度 Easy

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

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

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

 

首先要將Pascal's Triangle 和Pascal's Triangle II兩道題目一塊兒來看,二者都是對Pascal's Triangle的處理;blog

可是兩道題目給定的參數意義是有很大區別的,Pascal's Triangle是給定numRows(即總的行數);Pascal's Triangle II給出的是rowIndex(行的索引,即第幾行),由於Pascal's Triangle的行下標是從0開始的,因此兩道題目的初始化是須要特別注意的區分的。尤爲是關於0的處理;索引

由於Pascal's Triangle是層層嵌套的,下一層的元素是由上一層的元素求得,可是此題目又對空間作了要求,因此在循環調用的過程當中每求得一行都要對前一行的空間進行clear,這樣才能保證空間複雜度是O(k)。get

java代碼:it

public class Solution {
    public List<Integer> getRow(int rowIndex) {
        List<Integer> list = new ArrayList<Integer>();
        List<Integer> list2 = new ArrayList<Integer>();
        if(rowIndex<0) return list;
        for(int i=0;i<=rowIndex;i++){
            if(i==0) {
                list2.add(1);
            }else 
            for(int j=0;j<=i;j++){
                if(j==0 || j==i){
                    list2.add(1);
                }
                else{
                    list2.add(list.get(j-1)+list.get(j));
                }
            }
            List<Integer> temp = list;
            list=list2;
            list2=temp;
            list2.clear();
        }
        return list;
    }
}
相關文章
相關標籤/搜索