• 119. Pascal's Triangle II


    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;
        }
    }
  • 相关阅读:
    jQuery 语法
    HTML DOM Document 对象
    JavaScript
    JavaScript Cookies
    JavaScript 计时事件
    九度OJ 1352 和为S的两个数字
    九度0J 1374 所有员工年龄排序
    九度OJ 1373 整数中1出现的次数(从1到n整数中1出现的次数)
    九度OJ 1370 数组中出现次数超过一半的数字
    九度OJ 1361 翻转单词顺序
  • 原文地址:https://www.cnblogs.com/fatttcat/p/10054504.html
Copyright © 2020-2023  润新知