zoukankan      html  css  js  c++  java
  • 119. Pascal's Triangle II

    一、题目

      1、审题

      

      2、分析

        输出杨辉三角的第 n 行,其中行号从 0 开始。

     二、解答

      1、思路: 

        方法一、

          直接在一个 List 中计算杨辉三角的每一行。

          采用一个 for 循环,每次循环一次就,向 List 头部添加一个元素 1,且 从下标 1 开始,每个元素值变为 val(i) + val(i +1) 。

          即为第 n 行元素值。

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

      

      优化:

        每次向 List 尾部添加元素 1(操作更快)

        public List<Integer> getRow2(int rowIndex) {
            
            List<Integer> resultList = new ArrayList<>(rowIndex + 1);
            for (int i = 0; i <= rowIndex; i++) {
                resultList.add(1);
                for (int j = i - 1; j > 0; j--) 
                    resultList.set(j, resultList.get(j) + resultList.get(j - 1));
            }
            return resultList;
        }

      方法二、

        采用数组进行杨辉三角的行的计算,数组的下标计算更为方便、简介,且操作数值更快,最终转为 List 即可。

        public List<Integer> getRow(int rowIndex) {
            
            Integer[] arr = new Integer[rowIndex+1];
            Arrays.fill(arr, 0);    // 填充 0, 否则空指针异常
            arr[0] = 1;
            
            for (int i = 1; i <= rowIndex; i++) {
                for (int j = i; j > 0; j--) 
                    arr[j] = arr[j] + arr[j-1]; 
            }
            
            return Arrays.asList(arr);
        }
  • 相关阅读:
    idea vue.js插件安装
    vue.js 开发环境配置
    Stream grouping-storm的流分组策略
    Kafka web console安装
    call 方法 (Function) (JavaScript)
    bind 方法 (Function) (JavaScript)
    CSS选择器、优先级和常用的选择器
    CSS3.0盒子模型:display:-webkit-box
    有了自己的博客了
    Javascript进阶篇——(DOM—节点---获取浏览器窗口可视区域大小+获取网页尺寸)—笔记整理
  • 原文地址:https://www.cnblogs.com/skillking/p/9746065.html
Copyright © 2011-2022 走看看