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

    一、题目

      1、审题

      

      2、分析

       输入一个整数 n, 返回杨辉三角的 n 行。

     二、解答

      1、思路: 

        方法一、

          利用一次循环,直接计算杨辉三角的一行。再利用一次循环用 List 存储杨辉三角的 n 行。

        public List<List<Integer>> generate(int numRows) {
            List<List<Integer>> resultList = new ArrayList<List<Integer>>();
            
            if(numRows == 0)
                return resultList;
            else if(numRows == 1) {
                resultList.add(Arrays.asList(1));
                return resultList;
            }
            resultList.add(Arrays.asList(1));
            resultList.add(Arrays.asList(1, 1));
    
            int i = 2;
            while(i < numRows) {
                List<Integer> targetList = new ArrayList<>();
                List<Integer> tmpList = resultList.get(i-1);
                targetList.add(1);
                for (int j = 1; j < i; j++) 
                    targetList.add(tmpList.get(j) + tmpList.get(j-1));
                targetList.add(1);
                resultList.add(targetList);
                i++;
            }
            return resultList;
        }

      

      方法二、

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

        public List<List<Integer>> generate2(int numRows) {
            
            List<List<Integer>> resultList = new ArrayList<List<Integer>>();
            List<Integer> row = new ArrayList<Integer>();
            for(int i = 0; i < numRows; i++) {
                
                row.add(0, 1);
                for(int j = 1; j < row.size() - 1; j++) 
                    row.set(j, row.get(j) + row.get(j + 1));
                resultList.add(new ArrayList<>(row));
            }
            
            return resultList;
        }
  • 相关阅读:
    《人件》阅读笔记五
    《人件》阅读笔记四
    《人件》阅读笔记三
    《人件》阅读笔记二
    《人件》阅读笔记一
    年报系统课堂讨论记录
    系统利益相关者描述案例
    Android开发学习记录--活动生命周期
    jQuery AJAX简介
    jQuery HTML简介
  • 原文地址:https://www.cnblogs.com/skillking/p/9745926.html
Copyright © 2011-2022 走看看