zoukankan      html  css  js  c++  java
  • 第118题:杨辉三角

    一. 问题描述

    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

    在杨辉三角中,每个数是它左上方和右上方的数的和。

    示例:

    输入: 5

    输出:

    [

         [1],

        [1,1],

       [1,2,1],

      [1,3,3,1],

     [1,4,6,4,1]

    ]

    二. 解题思路

    本题四路:采用递归的方法进行求解。

    步骤一:构建递归函数(全局列表list存储结果,局部变量data存储某一层的结果,number表示第几层,tacket表示总层数)

    步骤二:递归函数中,如果number>tacket则递归结束,否则构建临时列表newdata,根据杨辉三角的特性,将newdata的第2位到number-1位依次添加data中存储的相邻两数之和,然后将第一位和最后一位添加1。重复步骤二进行递归。

    步骤三:直到如果number>tacket则递归结束。返回list。

    三. 执行结果

    执行用时 :1 ms, 在所有 java 提交中击败了98.50%的用户

    内存消耗 :34 MB, 在所有 java 提交中击败了26.10%的用户

    四. Java代码

    class Solution {
        public List<List<Integer>> generate(int numRows) {
            List<List<Integer>> list=new ArrayList<List<Integer>>();
            if(numRows==0) {
                return list;
            }
            List<Integer> data=new ArrayList<Integer>();
            data.add(1);
            list.add(data);
            if(numRows==1) {
                return list;
            }else {
               getRow(list,data,2,numRows);
               return list;
            }
        }
         public void getRow(List<List<Integer>> list,List<Integer> data,int number,int tacket) {
            if(number>tacket) {
                return ;
                    }
            List<Integer> newdata=new ArrayList<Integer>();
            for(int i=0;i<number;i++) {
                if(i==0||i==number-1) {
                    newdata.add(1);
                }else {
                    int temp=data.get(i-1)+data.get(i);
                    newdata.add(temp);
                }
            }
            list.add(newdata);
            getRow(list,newdata,number+1,tacket);
        }
    }
  • 相关阅读:
    转载:Android SQLite数据库版本升级原理解析
    Android可移动的Button
    Android详细目录结构
    自动化测试(二)
    不使用if else
    C# 如何实现自己的FormEditor XML Protocol
    C#中的析构函数,GC和IDisposable的用法
    Java中生成和解析JSON
    GCMS笔记
    Android ConstraintLayout的使用(二)
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11881590.html
Copyright © 2011-2022 走看看