順序表 —— OJ題

在上一篇文章中簡單介紹了順序表,這一篇文章講解下一個比較經典的題:

楊輝三角

先看一下什么是楊輝三角

下面解釋:

大概就是這個規律。而 ta 其實就是二維數組 即:

0  1
1  1 1
2  1 2 1
3  1 3 3 1
4  1 4 6 4 1

然后看一下這個題的要求:

意思是 numRows 一個非負數(整數),在根據 numRows 里的整數生成 【楊輝三角?】的“層數”

這是ta給的方法體:

這里的 List <List<Integer>>這個邊講邊說

下面說一下 這道題如何解:
首先是步驟:

如果你仔細觀察這個圖就會發現 ta 的頭值和尾值都是 1 而中間的都是運算來的

所以可以將這道題分為 頭 中? 尾 三部分處理?

頭 尾處理比較簡單難點是 中 的處理,這時候 再仔細觀察 中間的值,是如何得出來的,你會發現:

0  101  1 10 12  1 2 10 1 23  1 3 3 10 1 2 3 4  1 4 6 4 10 1 2 3 4所有的中間值都是由 上一個數組以下標 0 + 1 | 1 + 2 | 2 + 3 
的規律得出下一個數組 1下標 2下標 3下標 的值  如4數組:1下標 = 1+3 、2下標 = 3 + 3 、3下標 = 3+1就可以這樣寫:
i = 數組
while(ture){
j = 0;
int val = i[j] + i[j+1];
j++;
}

但這時候問題又出現了,以楊輝三角的規律不是那個數組,都有 1 2 3 下標的,這時候就要找條件

的要求了? 這時候再仔細看一下圖:

0  101  1 10 12  1 2 10 1 23  1 3 3 10 1 2 3 4  1 4 6 4 10 1 2 3 4會發現數組2需要加1次
數組3需要加2次
數組4需要加3次
后面相加的次數依次+1
只有 numRows 等于3時中間值需要加1次,4時加2次.......

這個題最好用順序表解決 下面看代碼:

public List<List<Integer>> generate(int numRows) {List<Integer> list = new ArrayList<>();//List<List<Integer>> ta 的意思就是如果你存放數組(順序表的底層是數組)的地址//會給這個地址放上 下標  ret是要返回的List<List<Integer>> ret = new ArrayList<>();//處理一層list.add(1);ret.add(list);//處理二層以上for(int i = 1; i<numRows; i++){//頭List<Integer> cj = new ArrayList<>();cj.add(1);//中//這里的 get 拿的是數組的整個地址List<Integer> zo = ret.get(i-1);//只有numRows 為3及以上才會運算for(int j = 0; j<i-1; j++){int val = zo.get(j) + zo.get(j+1);cj.add(val);}//尾cj.add(1);ret.add(cj);}return ret;}
List <List<Integer>>:

最后提交一下:

下一篇文章是 單向 無頭 不循環鏈表

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93341.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93341.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93341.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于單片機的防酒駕系統設計

一、引言1.1 研究背景與意義隨著社會經濟的快速發展&#xff0c;汽車保有量持續攀升&#xff0c;道路交通安全問題愈發凸顯。酒后駕駛作為交通事故的主要誘因之一&#xff0c;嚴重威脅著人們的生命財產安全。據統計&#xff0c;全球每年因酒駕造成的交通事故死亡人數高達數十萬…

Redis面試精講 Day 22:Redis布隆過濾器應用場景

【Redis面試精講 Day 22】Redis布隆過濾器應用場景 在高并發、大數據量的互聯網系統中&#xff0c;如何高效判斷一個元素是否存在于集合中&#xff0c;是緩存設計中的關鍵問題。尤其是在面對緩存穿透——即惡意或無效請求頻繁查詢不存在的數據&#xff0c;導致數據庫壓力劇增—…

Spark Shuffle中的數據結構

文章目錄1.Shuffle中的三種數據結構2.AppendOnlyMap原理2.1 聚合2.2 擴容2.3 排序2.4 為什么是數組&#xff1f;3.ExternalAppendOnlyMap原理3.1 工作原理3.2 AppendOnlyMap大小估計3.2.1 為什么要估計大小&#xff1f;3.2.2 估計大小淺析3.2.2.1 什么時候采樣&#xff1f;3.2.…

告別在線轉換風險:本地運行的PDF轉Word技術評測

Word文檔&#xff08;.docx&#xff09;是可編輯的主流辦公格式&#xff0c;支持靈活修改文字、排版、圖片、表格等。它的體積僅有5.5M&#xff0c;小巧不占空間&#xff0c;且轉換不限文件大小&#xff0c;隨用隨轉&#xff0c;毫無限制。初次使用需完成一次安裝&#xff0c;之…

整體設計 符號學與詮釋學融合的整體設計框架(本篇暫時命名)--PromptPilot (助手)答問之1

說明 本系列篇&#xff08;分多篇&#xff09;是就前面 已經和騰訊元寶就“整體設計”的討論內容 再和 PromptPilot &#xff08;助手&#xff09;的再次溝通。但內容做了部分修正一邊 更準確和完整。摘要&#xff08;CSDN的AI助手提取的&#xff09;符號學與詮釋學融合的整體設…

Font shape `TU/ptm/m/n‘ undefined(Font) using `TU/lmr/m/n‘ instead

一、警告內容 這是 LaTeX 字體選擇機制輸出的信息。我們可以把 TU/ptm/m/n 分解來看&#xff1a; TU → 編碼 (font encoding) TU 表示 Unicode TeX encoding&#xff0c;即新版 XeLaTeX/LuaLaTeX 下的 Unicode 字體編碼。 ptm → 字體族 (family) ptm 代表 Times 字體 (PostS…

拒絕造輪子(C#篇)ZLG CAN卡驅動封裝應用

拒絕造輪子&#xff08;C#篇&#xff09;ZLG CAN卡驅動封裝應用 今天給大家介紹一個封裝完善的CAN卡類。 背景 在面對常規開發場景&#xff0c;開發者對復雜SDK進行封裝和測試。閱讀相關開發資料和理解SDK的DEMO程序。 開篇 如果你也有同樣的煩惱&#xff0c;那就來看看今…

機器學習相關算法:回溯算法 貪心算法 回歸算法(線性回歸) 算法超參數 多項式時間 樸素貝葉斯分類算法

整理了一張“機器學習相關算法與概念速覽表”&#xff0c;既包含定義&#xff0c;也配上了容易記住的例子&#xff0c;讓大家一眼就能抓住它們的特點&#xff1a; &#x1f916; 機器學習與相關算法&概念 名稱定義生動例子典型應用場景回溯算法通過不斷嘗試和回退來尋找問…

vue+微信小程序 五角星

說明&#xff1a;這個是先畫出一個72度菱形&#xff0c;長中長線和短中長線按照一定比例&#xff0c;然后把菱形分層十份&#xff0c;最后再把菱形進行旋轉形成五角星&#xff0c;最后顯示標簽&#xff0c;因為一直對不上所以對標簽做了點操作 <template><view class&…

Prometheus + Grafana 深度玩法:從零到智能化監控體系

0. 寫在前面&#xff1a;為什么你需要“神器”而非“常用命令老楊折騰監控系統可是有年頭了&#xff0c;最早還用過 Cacti、Zabbix&#xff0c;那會兒做個儀表盤都得像雕花一樣慢慢刻。后來 Prometheus 出來之后&#xff0c;我的第一反應是&#xff1a;這玩意兒的時間序列和標簽…

YOLO、DarkNet和深度學習如何讓自動駕駛看得清?

【導讀】 本文提出 DarkNet-YOLO 工業級實踐框架&#xff0c;通過引入 殘差優化結構 與 多尺度特征融合技術&#xff0c;在保持實時檢測精度同時顯著提升復雜場景適應性。 目錄 一、目標檢測的進化之路&#xff1a;從“兩步走”到“一眼定乾坤” YOLO的核心思想&#xff1a…

使用 HTML5 Canvas 打造炫酷的數字時鐘動畫

在 Web 開發中&#xff0c;HTML5 的 canvas 元素為我們帶來了強大的繪圖能力&#xff0c;結合 JavaScript&#xff0c;可以實現各種酷炫的效果。今天&#xff0c;我們將深入剖析一段經典的 彩色數字時鐘動畫 代碼&#xff0c;并理解它是如何通過物理模擬實現數字切換時的炫酷粒…

XCZU6CG-2FFVC900I Xilinx FPGA AMD ZynqUltraScale+ MPSoC

XCZU6CG-2FFVC900I Xilinx FPGA&#xff08; AMD&#xff09;Zynq UltraScale MPSoC 。在處理系統&#xff08;PS&#xff09;方面&#xff0c;XCZU6CG 系列通常集成了 ARM Cortex-A53 應用核與 Cortex-R5 實時核的組合&#xff08;典型為 A53 多核 R5 雙核組合&#xff09;&…

Navicat 詢問 AI | 優化 SQL 查詢

近期&#xff0c;我們發布了 Navicat 17.3 版本。這一版本實現了全方位升級&#xff0c;包括對 AI 功能大升級、支持達夢、金倉、瀚高、支持阿里通義千問等 AI 大模型&#xff0c;支持凝思 OS 以及多項 UI 改進。今天&#xff0c;我們將深入介紹 Navicat AI 功能之“詢問 AI ”…

4.6 Vue 3 中的模板引用 (Template Refs)

在 Vue 3 中&#xff0c;ref 是一個核心的響應式 API&#xff0c;但它在模板中還有另一個非常重要的用途&#xff1a;獲取對 DOM 元素或子組件實例的直接引用。這就是我們所說的“模板引用”。核心概念目的&#xff1a;讓你在父組件中能夠直接訪問并操作特定的 DOM 元素或子組件…

模式匹配自動機全面理論分析

模式匹配是什么 模式匹配是計算機科學中一個基礎且重要的問題&#xff0c;廣泛應用于文本編輯、信息檢索、網絡安全、生物信息學等多個領域。簡單來說&#xff0c;模式匹配就是在一個主文本中查找一個或多個特定模式串的出現位置。隨著計算機處理能力的提升和數據規模的擴大&am…

AI 搜索時代:引領變革,重塑您的 SEO 戰略

隨著谷歌轉向人工智能驅動的答案&#xff0c;使用以關鍵字和反向鏈接為中心的過時和傳統的 SEO 策略不再起到任何作用。 由于 Google AI Overviews 和零點擊搜索的興起&#xff0c;自然點擊量正在下降&#xff0c;用戶無需點擊任何網站即可直接在 Google 的搜索結果頁面上獲得答…

【網站深入seo方法】

目錄 ①對于更成熟的網站&#xff0c;簡單的index.html的入口文件的seo已經無法滿足&#xff0c;需要在商品詳情不同商品被搜索時賦予不同的title和description。 ②通過設置站點所有頁面都新增Canonical標簽&#xff0c;指定規范鏈接地址給谷歌并規避聯盟的重復內容頁面。 ③…

ROS move_base 混合功能導航 RealSense D435i + 3D 點云地圖 + 樓層切換 + 路徑錄制 + 路徑規劃

Mixed-Navigation 這個博客也是記錄我們的一個開源項目&#xff0c;其作用是混合功能導航。由于現有的 Fast-Lio-Localization 只實現了定位功能&#xff0c;但對于路徑規劃和樓層切換沒有具體實現&#xff0c;因此我們開出了這個倉庫作為參考。該倉庫的核心功能如下&#xff…

初識c語言————宏定義和調用

目錄&#xff1a;一.不帶參數的宏二.帶參數宏一.不帶參數的宏不帶參數的宏是指用#define指令定義的簡單文本替換規則&#xff0c;它沒有參數列表&#xff0c;直接替換標識符為相應的文本其一般形式為&#xff1a;#define 宏名 文本例如&#xff1a;#define pi 3.14這個代…