zoukankan      html  css  js  c++  java
  • [leetCode]119.杨辉三角 II

    在这里插入图片描述

    动态规化

    使用一个列表保存杨辉三角每一行的值,初始化第0行为[1],后面的几行都可以由前一行计算得到,最后返回最后一行。

    class Solution {
        public List<Integer> getRow(int rowIndex) {
            List<List<Integer>> dp = new ArrayList<>();
            dp.add(new ArrayList<>());
            dp.get(0).add(1);
            for(int i = 1; i < rowIndex+1; i++){
                List<Integer> row = new ArrayList<>();
                List<Integer> preRow = dp.get(i-1);
                row.add(1);
                for(int j = 1; j < i; j++){
                    row.add(preRow.get(j)+preRow.get(j-1));
                }
                row.add(1);
                dp.add(row);
            }
            return dp.get(rowIndex);
        }
    }
    

    由于每次只用到前一行这个状态所以可以只使用一个变量preRow保存前一行状态,这样优化了空间复杂度。

    class Solution {
        public List<Integer> getRow(int rowIndex) {
            List<Integer> preRow = new ArrayList<>();
            preRow.add(1);
            for(int i = 1; i < rowIndex+1; i++){
                List<Integer> row = new ArrayList<>();
                row.add(1);
                for(int j = 1; j < i; j++){
                    row.add(preRow.get(j)+preRow.get(j-1));
                }
                row.add(1);
                preRow = row;
            }
            return preRow;
        }
    }
    

    下面是递归的写法,简单易懂

    class Solution {
        public List<Integer> getRow(int rowIndex) {
            List<Integer> row = new ArrayList<>();
            if(rowIndex == 0){
                row.add(1);
                return row;
            }else{
                List<Integer> preRow = getRow(rowIndex - 1);
                row.add(1);
                for(int i = 1; i < rowIndex; i++){
                    row.add(preRow.get(i)+preRow.get(i-1));
                }
                row.add(1);
            }
            return row;
        }
    }
    
  • 相关阅读:
    c#读取Excel并显示出来
    异步编程模型。
    细分线程的等待(WaitAny,WaitAll),区别于Thread.Join
    waitany,waitall在线程池中的使用。from msdn
    SQL SET NOCOUNT ON的含义和作用
    MS ゴシック与MS UI Gothic的区别
    线程的管理1
    HDU 1203 I NEED A OFFER!(背包)
    hdu 1232 畅通工程
    POJ 1088 滑雪
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13860005.html
Copyright © 2011-2022 走看看