zoukankan      html  css  js  c++  java
  • Pascal's Triangle leetcode java(杨辉三角)

    题目

    Given numRows, generate the first numRows of Pascal's triangle.

    For example, given numRows = 5,
    Return

    [
         [1],
        [1,1],
       [1,2,1],
      [1,3,3,1],
     [1,4,6,4,1]
    ]
    
    题解

    既然讲到了Pascal‘s Triangle,即杨辉三角。那么就先去Wikipedia上面复习一下杨辉三角吧:
    杨辉三角形,又称賈憲三角形帕斯卡三角形海亚姆三角形,是二项式係數在的一种写法,形似三角形
    杨辉三角形第n层(顶层称第0层,第1行,第n层即第n+1行,此处n为包含0在内的自然数)正好对应于二项式left(a+b
ight)^{n}展开的系数。例如第二层1 2 1是幂指数为2的二项式left(a+b
ight)^{2}展开形式a^{2}+2ab+b^{2}的系数。
    杨辉三角的性质:
    1. 楊輝三角以正整數構成,數字左右对称,每行由1开始逐渐变大,然后变小,回到1。
    2. n行的数字个数为n个。
    3. n行的第k個數字為組合數C_{n-1}^{k-1}
    4. n行数字和为2^{n-1}
    5. 除每行最左側與最右側的數字以外,每个数字等于它的左上方與右上方两个数字之和(也就是說,第n行第k個數字等於第n-1行的第k-1個數字與第k個數字的和)。這是因为有組合恒等式:C_{n}^{i}=C_{n-1}^{i-1}+C_{n-1}^{i}。可用此性质写出整个楊輝三角形。



    根据上面那个图,我们可以发现,第一行和第二行都由1组成。其他行的起始和结束都是1.内容由上一行相邻两个数组和组成。由此我们可以写出代码。
    代码如下:
     1 public class Solution {
     2     public static List<List<Integer>> generate(int numRows) {
     3         List<List<Integer>> res = new ArrayList<List<Integer>>();
     4         
     5         if(numRows == 0)
     6             return res;
     7         
     8        for(int j = 0;j<numRows;j++){
     9            List<Integer> row = new ArrayList<Integer>();
    10            row.add(1);
    11         for(int i=1;i<j;i++){//除去第一行和第二行才进这个循环
    12             List<Integer> prevRow = res.get(j-1);//当前行的上一行
    13             int temp = prevRow.get(i-1)+prevRow.get(i);
    14             row.add(temp);
    15         }
    16         if(j!=0)//除了第一行,末尾接个1
    17             row.add(1);
    18         res.add(row);
    19        }
    20        return res;
    21     }

  • 相关阅读:
    面经分享 | B站 | 数据分析 | 2021.1--转载
    TensorFlow 2.0 学习笔记--第六章 循环神经网络
    TensorFlow 2.0 学习笔记--第五章 神经网络卷积计算
    TensorFlow 2.0 学习笔记--第一章 神经网络计算过程及介绍
    免费服务器
    Nginx采坑日记(后台响应ResponseEntity时,Nginx将部分数据过滤)
    Vue 注意事项
    服务熔断&服务降级
    阿里微服务解决方案-Alibaba Cloud之负载均衡(Feign)(五)
    阿里微服务解决方案-Alibaba Cloud之服务消费方(Feign)(四)
  • 原文地址:https://www.cnblogs.com/springfor/p/3887910.html
Copyright © 2011-2022 走看看