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

Pascal's Triangle 1 & 2

时间:2015-04-15 14:55:55      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:leetcode

这两题都比较简单,第一题输出杨辉三角,第二题输出特定的某一行,第二题要求空间复杂度为O(k)

代码如下:

Pascal‘s Triangle:

    public List<List<Integer>> generate(int numRows) {//direct simulate
        List<List<Integer>> rs = new LinkedList<List<Integer>>();
        if(numRows == 0)return rs;
        else {
            for(int i = 0; i< numRows; ++ i){
                if(i == 0){
                    List<Integer> row = new LinkedList<Integer>();
                    row.add(1);
                    rs.add(row);
                }else {
                    List<Integer> lastRow = rs.get(i - 1);
                    List<Integer> row = new LinkedList<Integer>();
                    row.add(1);

                    int k1 = 0, k2 = k1 +1;
                    for(;k2 < lastRow.size();){
                        row.add(lastRow.get(k1) + lastRow.get(k2));
                        k1 ++;
                        k2 ++;
                    }
                    row.add(1);
                    rs.add(row);
                }

            }
        }

        return rs;
    }


Pascal‘s Triangle II:

    public List<Integer> getRow(int rowIndex) { //space capacity O(K)
        List<Integer> rs = new LinkedList<Integer>();
        if(rowIndex < 0) return rs;
        else {
            if(rowIndex == 0){
                rs.add(1);
                return rs;
            }else {
                rs.add(1);
                int k1 = 2;
                while (k1 <= rowIndex + 1){
                    int k3 = 1;
                    rs.add(1);
                    while (k3 < k1 - 1){
                        rs.add(rs.get(0) + rs.get(1));
                        rs.remove(0);
                        k3 ++;

                    }
                    if(k3 == k1 -1){
                        rs.remove(0);
                    }
                    rs.add(1);

                    k1 ++;
                }
            }
        }
        return rs;
    }


Pascal's Triangle 1 & 2

标签:leetcode

原文地址:http://blog.csdn.net/youmengjiuzhuiba/article/details/45058459

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