一、全文概括
1、sparsearray資料結構
2、資料插入以及取出過程
3、常見問題
二、sparsearray資料結構
1、由兩個陣列組成,乙個用於儲存key,乙個用於儲存value。儲存key的陣列為int型,儲存value的陣列為物件型別
2、key在陣列中的index就是value在相應陣列中的index
三、資料的插入以及取出過程
1、資料的插入文字描述
1.1、根據利用二分查詢是否有對應的key值,若有返回大於0的index,替換value陣列中相應index的值
1.2、沒有找到則返回小於0的index.將index取反變為正數,檢視value陣列對應index的狀態是否為刪除狀態。若為刪除狀態。則把key存在key陣列index位上,把value存在value陣列index位上。
1.3、如果不為刪除狀態,則判斷是否需要**(remove和delete方法都是改變相應位置的狀態);如果需要進行**,然後重新計算index;
1.4、插入資料,先判斷需不需擴容,如果不需要則將key陣列和value陣列index及之後的資料往後移一位,將index對應的key和value插入
1.5、如果需要擴容(小於等於4,則返回8, 否則返回當前size的兩倍)然後把index之前的資料考入,把index對應的key和value插入,把index後面的資料拷入
2、資料插入流程圖
sparsearray插入過程.png
3.獲取資料過程
利用二分查詢找到key相應的index 然後獲取value值
四、常見問題
1、有一堆數從中選兩個數相加等於10;
常規的解決方法:暴力解決需要兩個for迴圈
把數存入sparsearray
最簡潔HashMap介紹
一 全文介紹 1 hashmap資料結構介紹 2 資料的插入過程以及查詢過程 3 hashmap初始大小計算以及重要屬性介紹 4 常會被問到的問題。二 hashmap資料結構 hashmap是由陣列和鍊錶結構組成。這種結構有兩個好處 1 查詢比純鍊錶快,插入刪除比純陣列快 2 可以解決hashcod...
最簡潔條件判斷寫法
def islen strstring if len strstring 6 return true else return false在python3中有辦法只用一行完成函式 def islen strstring return true if len strstring 6 else false...
NodeJS Promoise 機制最簡單介紹
nodejs的promise機制是為了解決js執行過程中的非同步問題,或者說,有時候我們希望程式 是順序執行的。先來看看下面這段 的執行結果 var fs require fs var res fs.readfile c foo.txt function error,data console.log...