JAVA利用顺序表实现“杨辉三角”的思路及代码示例

 更新时间:2025年01月08日 11:28:59   作者:Excuse_lighttime  
杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,这篇文章主要介绍了JAVA利用顺序表实现杨辉三角的思路及代码示例,需要的朋友可以参考下

一:“杨辉三角”题目链接

题目链接:点击这里

二:题解代码:

    List<List<Integer>> Rang = new ArrayList<List<Integer>>();

        for(int i = 0; i < numRows ;i++) {
            List<Integer> row = new ArrayList<>();

            for(int j = 0 ; j < i + 1 ;j++) {
                if(j == 0 || j == i) {
                    row.add(1);
                } else {
                    int count = Rang.get(i-1).get(j-1) + Rang.get(i-1).get(j);
                    row.add(count);
                }
            }
            Rang.add(row);
        }
        return Rang;

三:题解思路:

1.首先,我们把杨辉三角换成直角三角形的形式看待:

行表示 i  ;列表示 j  ;可以发现:

第 i 行 有 i + 1 个列。

每一行的第一个和最后一个元素都是 1 。

而其他的第 i 行 第 j 列元素为 其 i - 1 行的第 j - 1 个 元素 +  其 i - 1 行的第 j 个 元素。

2.然后,我们可以把每一行当作一个 ArrayList 顺序表,并且把这些 行 作为元素作为另一个         ArrayList 二维顺序表,如图:

3. 先定义一个 二维顺序表 ,再通过一个for 循环 先找到需要的行的数量,在每一次循环定义一个一维顺序表 ,在通过一个for循环,由 第 i 行 有 i + 1 个列,得到每一行 的列数,再判断该列的位置,每一行的第一个和最后一个元素都是 1 ,就可以直接把 1 通过 add 方法添加到 一维顺序表中去,如果是其他的情况,则需要先得到该 行 的上一 行 ,通过 Rang.get(i-1) 得到 上一行(也就是一个一维顺序表),再通过 Rang.get(i-1).get(j-1) 得到上一行的 第 j - 1 位置的元素。右边的同理。        

得到的结果给到 变量count,再通过add方法给到一维顺序表中。 一次循环完成一个一位顺序表,通过  Rang.add(row); 给到二维顺序表。

循环结束后返回。

总结

到此这篇关于JAVA利用顺序表实现“杨辉三角”的思路及代码示例的文章就介绍到这了,更多相关JAVA顺序表实现杨辉三角”内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java利用happen-before规则如何实现共享变量的同步操作详解

    Java利用happen-before规则如何实现共享变量的同步操作详解

    这篇文章主要给大家介绍了关于Java利用happen-before规则实现共享变量的同步操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • Java行为型模式中命令模式分析

    Java行为型模式中命令模式分析

    在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时可以使用命令模式来进行设计
    2023-02-02
  • 使用Java计算集合中的组内平均值的代码实现

    使用Java计算集合中的组内平均值的代码实现

    在Java开发中,集合(Collection)是一个重要的数据结构,广泛应用于各种场景,计算集合中的组内平均值是一个常见的操作,本文将深入探讨如何使用Java来计算集合中的组内平均值,涵盖基本概念、具体实现、优化策略和实用示例,需要的朋友可以参考下
    2024-06-06
  • java-SSH2实现数据库和界面的分页

    java-SSH2实现数据库和界面的分页

    本文主要是介绍SSH2实现数据库和界面的分页的代码,分页在web应用中是经常要做的事情,实用性比较大,有需要的朋友可以来了解一下。
    2016-10-10
  • MyBatis多对多关联映射创建示例

    MyBatis多对多关联映射创建示例

    这篇文章主要为大家介绍了MyBatis多对多关联映射的创建示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • SpringBoot日志从调试到持久化的全解析

    SpringBoot日志从调试到持久化的全解析

    这篇文章主要介绍了Spring Boot项目中日志的用途、使用方法、日志级别、配置以及持久化等方面的内容,日志是开发者排查问题、监控系统运行状态的重要工具,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • SpringBoot实现图片上传及本地访问

    SpringBoot实现图片上传及本地访问

    在SpringBoot项目中,处理静态文件访问尤其是实时更新的文件如商品图片,可通过配置WebMvcConfig将本地文件映射到URL路径上,以解决重启项目才能访问文件的问题,本文详解如何保存和访问这些文件,帮助开发者优化项目文件管理
    2022-09-09
  • SpringBoot实现隐式参数注入的完整指南

    SpringBoot实现隐式参数注入的完整指南

    这篇文章主要为大家详细介绍了SpringBoot实现隐式参数注入的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-11-11
  • java集合类arraylist循环中删除特定元素的方法

    java集合类arraylist循环中删除特定元素的方法

    下面小编就为大家带来一篇Java集合类ArrayList循环中删除特定元素的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 如何使用Springfox Swagger实现API自动生成单元测试

    如何使用Springfox Swagger实现API自动生成单元测试

    Springfox是一个使用Java语言开发开源的API Doc的框架,它的前身是swagger-springmvc,可以将我们的Controller中的方法以文档的形式展现,这篇文章主要介绍了如何使用Springfox Swagger实现API自动生成单元测试,感兴趣的朋友跟随小编一起看看吧
    2024-04-04

最新评论