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顺序表实现杨辉三角”内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring cloud restTemplate 传递复杂参数的方式(多个对象)
这篇文章主要介绍了Spring cloud restTemplate 传递复杂参数的方式(多个对象),需要的朋友可以参考下2018-05-05
详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文)
本篇文章主要介绍了详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-11-11
IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题(已解决)
这篇文章主要介绍了IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-06-06
详解spring cloud hystrix 请求合并collapsing
这篇文章主要介绍了详解spring cloud hystrix 请求合并collapsing,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-05-05


最新评论