zoukankan      html  css  js  c++  java
  • 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.

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

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

    首先要将Pascal's Triangle 和Pascal's Triangle II两道题目一起来看,两者都是对Pascal's Triangle的处理;

    但是两道题目给定的参数意义是有很大区别的,Pascal's Triangle是给定numRows(即总的行数);Pascal's Triangle II给出的是rowIndex(行的索引,即第几行),因为Pascal's Triangle的行下标是从0开始的,所以两道题目的初始化是需要特别注意的区分的。尤其是关于0的处理;

    因为Pascal's Triangle是层层嵌套的,下一层的元素是由上一层的元素求得,但是此题目又对空间做了要求,所以在循环调用的过程中每求得一行都要对前一行的空间进行clear,这样才能保证空间复杂度是O(k)。

    java代码:

    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;
        }
    }
  • 相关阅读:
    伯努利数学习笔记
    贝尔数学习笔记
    LuoguP5075 [JSOI2012]分零食
    LuoguP5748 集合划分计数
    LuoguP3338 [ZJOI2014]力
    LuoguP5488 差分与前缀和
    BZOJ4833 [Lydsy1704月赛]最小公倍佩尔数
    FFT&NTT学习笔记
    csp2019游记
    与图论的邂逅09:树上启发式合并
  • 原文地址:https://www.cnblogs.com/pku-min/p/4214574.html
Copyright © 2011-2022 走看看