JAVA利用順序表實(shí)現(xiàn)“楊輝三角”的思路及代碼示例
一:“楊輝三角”題目鏈接
題目鏈接:點(diǎn)擊這里
二:題解代碼:
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 ;可以發(fā)現(xiàn):
第 i 行 有 i + 1 個(gè)列。
每一行的第一個(gè)和最后一個(gè)元素都是 1 。
而其他的第 i 行 第 j 列元素為 其 i - 1 行的第 j - 1 個(gè) 元素 + 其 i - 1 行的第 j 個(gè) 元素。
2.然后,我們可以把每一行當(dāng)作一個(gè) ArrayList 順序表,并且把這些 行 作為元素作為另一個(gè) ArrayList 二維順序表,如圖:

3. 先定義一個(gè) 二維順序表 ,再通過一個(gè)for 循環(huán) 先找到需要的行的數(shù)量,在每一次循環(huán)定義一個(gè)一維順序表 ,在通過一個(gè)for循環(huán),由 第 i 行 有 i + 1 個(gè)列,得到每一行 的列數(shù),再判斷該列的位置,每一行的第一個(gè)和最后一個(gè)元素都是 1 ,就可以直接把 1 通過 add 方法添加到 一維順序表中去,如果是其他的情況,則需要先得到該 行 的上一 行 ,通過 Rang.get(i-1) 得到 上一行(也就是一個(gè)一維順序表),再通過 Rang.get(i-1).get(j-1) 得到上一行的 第 j - 1 位置的元素。右邊的同理。
得到的結(jié)果給到 變量count,再通過add方法給到一維順序表中。 一次循環(huán)完成一個(gè)一位順序表,通過 Rang.add(row); 給到二維順序表。
循環(huán)結(jié)束后返回。
總結(jié)
到此這篇關(guān)于JAVA利用順序表實(shí)現(xiàn)“楊輝三角”的思路及代碼示例的文章就介紹到這了,更多相關(guān)JAVA順序表實(shí)現(xiàn)楊輝三角”內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java利用happen-before規(guī)則如何實(shí)現(xiàn)共享變量的同步操作詳解
這篇文章主要給大家介紹了關(guān)于Java利用happen-before規(guī)則實(shí)現(xiàn)共享變量的同步操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06
使用Java計(jì)算集合中的組內(nèi)平均值的代碼實(shí)現(xiàn)
在Java開發(fā)中,集合(Collection)是一個(gè)重要的數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于各種場(chǎng)景,計(jì)算集合中的組內(nèi)平均值是一個(gè)常見的操作,本文將深入探討如何使用Java來計(jì)算集合中的組內(nèi)平均值,涵蓋基本概念、具體實(shí)現(xiàn)、優(yōu)化策略和實(shí)用示例,需要的朋友可以參考下2024-06-06
java-SSH2實(shí)現(xiàn)數(shù)據(jù)庫和界面的分頁
本文主要是介紹SSH2實(shí)現(xiàn)數(shù)據(jù)庫和界面的分頁的代碼,分頁在web應(yīng)用中是經(jīng)常要做的事情,實(shí)用性比較大,有需要的朋友可以來了解一下。2016-10-10
MyBatis多對(duì)多關(guān)聯(lián)映射創(chuàng)建示例
這篇文章主要為大家介紹了MyBatis多對(duì)多關(guān)聯(lián)映射的創(chuàng)建示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
SpringBoot實(shí)現(xiàn)圖片上傳及本地訪問
在SpringBoot項(xiàng)目中,處理靜態(tài)文件訪問尤其是實(shí)時(shí)更新的文件如商品圖片,可通過配置WebMvcConfig將本地文件映射到URL路徑上,以解決重啟項(xiàng)目才能訪問文件的問題,本文詳解如何保存和訪問這些文件,幫助開發(fā)者優(yōu)化項(xiàng)目文件管理2022-09-09
SpringBoot實(shí)現(xiàn)隱式參數(shù)注入的完整指南
這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)隱式參數(shù)注入的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-11-11
java集合類arraylist循環(huán)中刪除特定元素的方法
下面小編就為大家?guī)硪黄狫ava集合類ArrayList循環(huán)中刪除特定元素的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
如何使用Springfox?Swagger實(shí)現(xiàn)API自動(dòng)生成單元測(cè)試
Springfox是一個(gè)使用Java語言開發(fā)開源的API Doc的框架,它的前身是swagger-springmvc,可以將我們的Controller中的方法以文檔的形式展現(xiàn),這篇文章主要介紹了如何使用Springfox?Swagger實(shí)現(xiàn)API自動(dòng)生成單元測(cè)試,感興趣的朋友跟隨小編一起看看吧2024-04-04

