JAVA利用順序表實現(xià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 個列。
每一行的第一個和最后一個元素都是 1 。
而其他的第 i 行 第 j 列元素為 其 i - 1 行的第 j - 1 個 元素 + 其 i - 1 行的第 j 個 元素。
2.然后,我們可以把每一行當作一個 ArrayList 順序表,并且把這些 行 作為元素作為另一個 ArrayList 二維順序表,如圖:
3. 先定義一個 二維順序表 ,再通過一個for 循環(huán) 先找到需要的行的數(shù)量,在每一次循環(huán)定義一個一維順序表 ,在通過一個for循環(huán),由 第 i 行 有 i + 1 個列,得到每一行 的列數(shù),再判斷該列的位置,每一行的第一個和最后一個元素都是 1 ,就可以直接把 1 通過 add 方法添加到 一維順序表中去,如果是其他的情況,則需要先得到該 行 的上一 行 ,通過 Rang.get(i-1) 得到 上一行(也就是一個一維順序表),再通過 Rang.get(i-1).get(j-1) 得到上一行的 第 j - 1 位置的元素。右邊的同理。
得到的結果給到 變量count,再通過add方法給到一維順序表中。 一次循環(huán)完成一個一位順序表,通過 Rang.add(row); 給到二維順序表。
循環(huán)結束后返回。
總結
到此這篇關于JAVA利用順序表實現(xiàn)“楊輝三角”的思路及代碼示例的文章就介紹到這了,更多相關JAVA順序表實現(xiàn)楊輝三角”內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot項目如何使用多線程執(zhí)行定時任務
在SpringBoot項目中使用多線程執(zhí)行定時任務,可以避免一個耗時任務影響其他任務,通過配置線程池任務調度器,Spring會自動使用多線程執(zhí)行定時任務2025-01-01Spring cloud restTemplate 傳遞復雜參數(shù)的方式(多個對象)
這篇文章主要介紹了Spring cloud restTemplate 傳遞復雜參數(shù)的方式(多個對象),需要的朋友可以參考下2018-05-05詳述IntelliJ IDEA 中自動生成 serialVersionUID 的方法(圖文)
本篇文章主要介紹了詳述IntelliJ IDEA 中自動生成 serialVersionUID 的方法(圖文),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-11-11SpringBoot配置數(shù)據(jù)庫密碼加密的方法
由于系統(tǒng)安全的考慮,配置文件中不能出現(xiàn)明文密碼的問題,本文就給大家詳細介紹下springboot配置數(shù)據(jù)庫密碼加密的方法,下面話不多說了,來一起看看詳細的介紹吧,需要的朋友可以參考下2023-08-08IDEA最新版2020.1的maven工程本地依賴倉庫無法使用問題(已解決)
這篇文章主要介紹了IDEA最新版2020.1的maven工程本地依賴倉庫無法使用問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06詳解spring cloud hystrix 請求合并collapsing
這篇文章主要介紹了詳解spring cloud hystrix 請求合并collapsing,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05