zoukankan      html  css  js  c++  java
  • LeetCode——杨辉三角 i-ii

    Q:给出一个值numRows,生成杨辉三角的前numRows行
    例如,给出 numRows = 5,
    返回
    [↵ [1],↵ [1,1],↵ [1,2,1],↵ [1,3,3,1],↵ [1,4,6,4,1]↵]
    A:

        public static ArrayList<ArrayList<Integer>> generate(int numRows) {
            ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>();
            if (numRows == 0)
                return arrayLists;
            ArrayList<Integer> array = new ArrayList<>();
            for (int i = 1; i <= numRows; i++) {
                ArrayList<Integer> arrayList = new ArrayList<>();
                for (int j = 0; j < i; j++) {
                    if (j == 0 || j == i - 1)
                        arrayList.add(1);
                    else
                        arrayList.add(array.get(j - 1) + array.get(j));
                }
                array = arrayList;
                arrayLists.add(arrayList);
            }
            return arrayLists;
        }
    

    Q:给出一个索引k,返回杨辉三角的第k行
    例如,k=3,
    返回[1,3,3,1].
    备注:
    你能将你的算法优化到只使用O(k)的额外空间吗?
    A:
    注意,行数是从0开始的。使用从后往前计算。

        public static ArrayList<Integer> getRow(int rowIndex) {
            ArrayList<Integer> array = new ArrayList<>();
            for (int i = 0; i <= rowIndex; i++) {
                for (int j = i - 1; j > 0; j--) {
                    array.set(j, array.get(j) + array.get(j - 1));
                }
                array.add(1);
            }
            return array;
        }
    
  • 相关阅读:
    Django 基础
    Ajax介绍
    jquery里操作table表格的各种方法
    DJANGO 学生管理系统项目创建流程 -- 一对多管理及多对多管理
    ZIP() 函数
    DJANGO ORM操作
    DJANGO 学生管理系统项目创建流程 -- 单表管理
    Scrapy
    Django 基础二
    MySQL 5.7 弱密码限制
  • 原文地址:https://www.cnblogs.com/xym4869/p/12500334.html
Copyright © 2011-2022 走看看