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

119. Pascal's Triangle II - Easy

时间:2018-12-02 19:22:23      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:不能   hat   lis   log   algorithm   row   div   注意   com   

Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal‘s triangle.

Note that the row index starts from 0.

技术分享图片
In Pascal‘s triangle, each number is the sum of the two numbers directly above it.

Example:

Input: 3
Output: [1,3,3,1]

Follow up:

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

 

brute force,同Pascal‘s Triangle,https://www.cnblogs.com/fatttcat/p/10054249.html

注意这题的下标和上题不同,这里的input rowIndex = 5 返回的是原数组中的第5行,即下标为4对应的数组。

Input: 5
Output:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

因此外层循环应该从0 ~ rowIndex + 1

另外还要注意!由于从始至终只用了一个arraylist,在设第一个元素为1的时候,不能只用list.add(1),而应该用list.add(0, 1),否则会在list后追加1,而不是在index=0的位置加1

e.g. rowIndex = 3

i = 0   res = 1
i = 1    res = 1 1
i = 2   res = 1 1 1 -> 1 2 1
i = 3   res = 1 1 2 1 -> 1 3 2 1 -> 1 3 3 1

时间:O(N^2),空间:O(K)

class Solution {
    public List<Integer> getRow(int rowIndex) {
        List<Integer> res = new ArrayList<>();
        if(rowIndex < 0) return res;
        
        for(int i = 0; i < rowIndex + 1; i++) {
            res.add(0, 1);
            for(int j = 1; j < res.size() - 1; j++)
                res.set(j, res.get(j) + res.get(j + 1));
        }
        return res;
    }
}

 

119. Pascal's Triangle II - Easy

标签:不能   hat   lis   log   algorithm   row   div   注意   com   

原文地址:https://www.cnblogs.com/fatttcat/p/10054504.html

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