首页 > 编程语言 >leetcode java 杨辉三角

leetcode java 杨辉三角

时间:2022-11-03 23:35:28浏览次数:39  
标签:index java get int ArrayList num sum 杨辉三角 leetcode

简介

  1. 杨辉三角

是一道简单题,可以通过类似一层推下一层的方式进行计算,但是好像看过一个题解, 采用的方式是组合数。本来想采用组合数,尝试了double溢出
尝试了long 溢出,尝试了BigDecimal leetcode 不识别,无奈之下尝试使用数组的方式并进行延迟计算的方式;

code

class Solution {
    public ArrayList<Integer> factorial(Integer index) {
        if(index == 0) return new ArrayList<>(){{add(1);}};
        ArrayList<Integer>  sum = new ArrayList<>();

        for(int i=1; i<=index; i++){
            sum.add(i);
        }
        return sum;
    }
    public long combination(Integer index, Integer num) {
        ArrayList<Integer> r = factorial(num);
        ArrayList<Integer> a = factorial(index > (num - index) ? index : num - index);
        ArrayList<Integer> t = factorial(index > (num - index) ? num - index : index);
        for (int i = 1; i < a.size(); i++) {
            if(r.get(i) == a.get(i)) {
                r.set(i, 1);
            }
        }

        long sum = 1;
        for (int i = 0; i < r.size(); i++) {
            sum *= r.get(i);
        }
        for (int i = 1; i < t.size(); i++) {
            sum /= t.get(i);
        }
        return sum;
    }
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> rlt = new ArrayList<>();
        for(int i=0; i<numRows; i++){
            List<Integer> row = new ArrayList<>();
            for(int j=0; j<= i; j++){
                long a = combination(j,i);

                row.add((int)a);
            }
            rlt.add(row);
        }
        return rlt;
    }
}

标签:index,java,get,int,ArrayList,num,sum,杨辉三角,leetcode
From: https://www.cnblogs.com/eat-too-much/p/16856249.html

相关文章

  • 发起HTTP请求方式汇总(Java)
    Java发起HTTP请求方式汇总Java发起HTTP请求方式汇总2021-01-07T16:31:40+08:00作为一个Java后端,需要通过HTTP请求其他的网络资源可以说是一个比较常见的case了;一般怎......
  • 【Java复健指南09】项目练习全解--房屋出租系统
    一个基于文本界面的综合练习,主要用于串联和回忆知识点,比较简单各个界面的设计样式主菜单=============房屋出租系统菜单============ 1新增房源 2查找房......
  • java.lang.IllegalArgumentException: Request header is too large
    该问题出现于接口使用get请求,参数的长度太长导致的问题,修复方案,将该接口的请求方式又get请求换成post请求即可进一步分析,两者都是http的请求方式,根本原因是浏览器和web服......
  • 如何判断Javascript函数是否是Async函数
     zhangfisher发布于 2021-04-13判断Javascript函数是否是Async函数有好几种方法:调用Object.prototype.toString.call(asyncfunction(){}),如果返回[objectAsy......
  • LeetCode_Stack_589. N-ary Tree Preorder Traversal N 叉树的前序遍历【栈,迭代】【简
    目录​​一,题目描述​​​​英文描述​​​​中文描述​​​​示例与说明​​​​二,解题思路​​​​三,AC代码​​​​C++​​​​Java​​​​四,解题过程​​​​第一博​......
  • java接口
    接口接口描述了所具备的方法,并没有具体实现。具体的实现由接口的实现类来完成。接口定义使用interface关键字publicinterface接口名{静态常量;抽象方法;}接口的实现......
  • 2.Java API操作elasticsearch
    新建Maven工程添加依赖:<dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><ver......
  • Java学习笔记day3--二维数组
    packageday4_array;importjavax.swing.plaf.synth.SynthFormattedTextFieldUI;//一维数组的元素仍然是一维数组,则构成了二维数组publicclassArrayDemension2{......
  • 狂神说java基础——面向对象编程
    面向对象编程(oop)1、什么是面向对象(00)面向过程:线性思维面向对象:分类思维​ 本质:以类的方式组织代码,以对象的形式阻止(封装)数据三大特性:封装,继承,多态2、回顾方......
  • Java集合精选常见面试题
    前言博主只是这篇文章的搬运工,为了加强记忆自己梳理了一遍并扩展了部分内容。集合拓展链接:集合概述&集合之Collection接口-至安-博客园(cnblogs.com)Java集合概览......