zoukankan      html  css  js  c++  java
  • leetcode — pascals-triangle-ii

    import java.util.Arrays;
    
    /**
     *
     * Source : https://oj.leetcode.com/problems/pascals-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?
     *
     */
    public class PascalTriangle2 {
    
        /**
         * 获取杨辉三角的第n行
         * 占用常数空间,使用长度为n的数组,依次计算 ...i-2,i-2,i 行的数据,可以根据俄第i-1行的结果来计算i行,
         * 计算每行数据的时候,如果从前向后填入的话,会把后面的覆盖就不能继续计算,那么就从后向前
         *
         * @param n
         * @return
         */
        public int[] getRow (int n) {
            int[] row = new int[n];
            row[0] = 1;
            if (n == 1) {
                return row;
            }
            for (int i = 2; i <= n; i++) {
                for (int j = i; j > 1; j--) {
                    row[j-1] = row[j-1] + row[j-2];
                }
            }
            return row;
        }
    
        public static void main(String[] args) {
            PascalTriangle2 pascalTriangle2 = new PascalTriangle2();
            System.out.println(Arrays.toString(pascalTriangle2.getRow(5)));
        }
    }
    
  • 相关阅读:
    编程语言学哪个比较好?
    C#一定要避免程序中很多的依靠
    EXPIREAT
    EXISTS
    DUMP
    Python之sys模块
    Python的OS模块
    CentOS 7上安装gitlab-runner
    PyCharm激活方法
    Linux03 文件的相关操作(touch、rm、mv、cat)
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/7830743.html
Copyright © 2011-2022 走看看