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

    Given an index k, return the kth row of the Pascal's triangle.

    For example, given k = 3,
    Return [1,3,3,1].

    Note:
    Could you optimize your algorithm to use only O(k) extra space?

    A Formula for Any Entry in The Triangle

    In fact there is a formula from Combinations for working out the value at any place in Pascal's triangle:

    It is commonly called "n choose k" and written like this:

    So Pascal's Triangle could also be an "n choose k" triangle like this: (Note how the top row is row zero and also the leftmost column is zero)


    Pascals Triangle Combinations


    This can be very useful ... you can now work out any value in Pascal's Triangle 
    directly (without calculating the whole triangle above it).Example: Row 4, term 2 in Pascal's Triangle is "6" ...

    ... let's see if the formula works:

    Yes, it works! Try another value for yourself.

     1 public class Solution {
     2     public ArrayList<Integer> getRow(int rowIndex) {
     3         // IMPORTANT: Please reset any member data you declared, as
     4         // the same Solution instance will be reused for each test case.
     5         ArrayList<Integer> result = new ArrayList<Integer>();
     6         for(int i = 0; i <= rowIndex; i ++){
     7             result.add(items(rowIndex, i));
     8         }
     9         return result;
    10     }
    11     public int items(int m, int n){ // m!/ (n!(m-n)!)
    12         int i = m;
    13         long ret = 1;
    14         for (int j = 1; j <= n; j ++){
    15             ret *= i --;
    16             ret /= j;
    17         }
    18         return (int)ret;
    19     }
    20 }

    注意的地方是ret要用long,用int会溢出。

  • 相关阅读:
    GDI+学习之------色彩与图像
    2015小米暑期实习笔试题_懂二进制(位运算)
    拷贝构造函数和赋值函数
    HDU
    react-router中,<switch>
    Navicat for MySQL
    maven项目创建3 (依赖版本冲突)
    maven项目创建2
    maven项目创建
    Eclipse 开发环境修改及MAVEN配置
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3427469.html
Copyright © 2011-2022 走看看