码迷,mamicode.com
首页 > 其他好文 > 详细

leetCode-Pascal's Triangle II

时间:2017-11-26 21:04:54      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:extra   temp   solution   line   color   example   long   esc   ++   

Description:
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?

My Solution:

class Solution {
    public List<Integer> getRow(int rowIndex) {
        List list = new ArrayList();
        for(int i = 0;i <= rowIndex;i++){
            List<Integer> line = new ArrayList<Integer>();
            for(int j = 0;j <= i;j++){
                if(j == 0 || j== i){
                    line.add(1);
                }else{
                    List<Integer> temp = (ArrayList<Integer>)list.get(list.size() - 1);
                    line.add(temp.get(j - 1) + temp.get(j));
                }
            }
            list.add(line);
        }
        return (ArrayList<Integer>)list.get(list.size() - 1);
    }
}

Better Solution:

class Solution {
    public List<Integer> getRow(int rowIndex) {
        rowIndex+=1;
        int[][] res=new int[rowIndex][];
        List<Integer> RES=new ArrayList<>();
        for(int i=0;i<rowIndex;i++){
            res[i]=new int[i+1];
            for(int j=0;j<i+1;j++){
                if(j==0||j==i)res[i][j]=1;
                else res[i][j]=res[i-1][j-1]+res[i-1][j];
                if(i==rowIndex-1)RES.add(res[i][j]);
            }
        }
        return RES;
    }
}

Best Solution:

class Solution {
    public List<Integer> getRow(int rowIndex) {
        List<Integer> result=new ArrayList<Integer>();
        for(int k=0,value=1;k<=rowIndex;k++){
            result.add(value);
            //核心
            value=(int)((long)value*(rowIndex-k)/(k+1));
        }
        return result;
    }
}

leetCode-Pascal's Triangle II

标签:extra   temp   solution   line   color   example   long   esc   ++   

原文地址:http://www.cnblogs.com/kevincong/p/7900348.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!