演算法學習系列(三) 陣列

2021-09-28 23:59:13 字數 547 閱讀 1052

陣列挑了自己不太熟悉的詳細寫一下

在一些場景下,三角型陣列可以用來代替矩形陣列,以達到節省空間的目的,即對角線某一側的資料可以用預設值來代替

矩形陣列較小的情況下,節省空間的效果不是很明顯,但在10000*10000的陣列中,三角型矩陣可以節約大約5000萬個條目!

如何建立乙個三角形陣列:

把陣列的值打包成乙個一維陣列

跳過不用包括的條目

規律:n行陣列需要的元素數是n-1行所需要的元素+n →若建立乙個n行的三角型陣列,需要為乙個一維陣列分配

通常情況下,第r行c列對應的索引公式是

不表示消失條目的稀疏陣列可以節約更多的空間。

建立稀疏陣列的時候可以建立兩個子類,乙個arrayrow類表示行,乙個arrayentry類表示一行中的值。

arrayrow中儲存了乙個行號,乙個引用或指標指向下乙個arrayrow,與乙個本行中第乙個arrayentry的引用;arrayentry中儲存了條目的列號,該條目的值,與乙個指向本行下乙個arrayentry物件的引用

演算法學習 陣列

乙個陣列存放了2n 1個整數,其中有n個數出現了2次,1個數出現了1次,找出出現1次的數是多少?方法一 借助輔助陣列 長度為n 1,元素為一結構體 包含數值和 個數兩個成員 進行計數,但是時間複雜度為o n n 空間複雜度為o n 1 本來是想把val定義為結構體的,但由於結構體是值型別,不是引用型...

演算法學習 陣列

乙個陣列存放了2n 1個整數,其中有n個數出現了2次,1個數出現了1次,找出出現1次的數是多少?方法一 借助輔助陣列 長度為n 1,元素為一結構體 包含數值和 個數兩個成員 進行計數,但是時間複雜度為o n n 空間複雜度為o n 1 本來是想把val定義為結構體的,但由於結構體是值型別,不是引用型...

演算法學習系列 目錄

看了下剛剛開始用部落格的自己,深深感覺到自己是個辣雞,決定學的東西學了一段時間沒能堅持下來,感到很可惜 一晃而過現在都大四了,比較幸運能夠保研,決定利用這幾個月健身,學習改變一下自己。之前為了準備藍橋杯的省賽,練習過一段時間的演算法題,但是沒有進行深入系統的學習,正好手邊有 演算法基礎 這本書,從今...