leetcode146 LRU快取機制

2021-10-25 01:26:38 字數 1326 閱讀 5973

模擬了快取機制。

這道題需要乙個東西來儲存鍵值對的資訊,所以採用map

整個過程包括的操作有插入,刪除。因此使用雙向鍊錶是比較容易實現這一功能的目的的。

class

lrucache

public

node

(int key,

int value)

}private node dummyhead =

newnode()

;private node dummytail =

newnode()

;private

int capacity;

private

int size;

private hashmap

map =

newhashmap

<

>()

;private

void

add(node node)

private

void

del(node node)

public

lrucache

(int capacity)

public

intget

(int key)

del(node)

;add

(node)

;return node.value;

}public

void

put(

int key,

int value)

else

else

node newnode =

newnode

(key,value)

;add

(newnode)

; map.

put(key,newnode);}

}}

還可用linkedhashmap進行實現:

class

lrucache

public

intget

(int key)

int val = map.

get(key)

; map.

remove

(key)

; map.

put(key, val)

;return val;

}public

void

put(

int key,

int value)

else}}

}

學渣帶你刷Leetcode146 LRU快取機制

運用你所掌握的資料結構,設計和實現乙個 lru 最近最少使用 快取機制。它應該支援以下操作 獲取資料 get 和 寫入資料 put 獲取資料 get key 如果金鑰 key 存在於快取中,則獲取金鑰的值 總是正數 否則返回 1。寫入資料 put key,value 如果金鑰已經存在,則變更其資料值...

leetcode146 LRU快取機制

運用你所掌握的資料結構,設計和實現乙個 lru 最近最少使用 快取機制。它應該支援以下操作 獲取資料 get 和 寫入資料 put 獲取資料 get key 如果金鑰 key 存在於快取中,則獲取金鑰的值 總是正數 否則返回 1。寫入資料 put key,value 如果金鑰不存在,則寫入其資料值。...

LeetCode 146 LRU快取機制

運用你所掌握的資料結構,設計和實現乙個 lru 最近最少使用 快取機制。它應該支援以下操作 獲取資料get和 寫入資料put。獲取資料get key 如果金鑰 key 存在於快取中,則獲取金鑰的值 總是正數 否則返回 1。寫入資料put key,value 如果金鑰不存在,則寫入其資料值。當快取容量...