華為校招機試 - 最久最少使用緩存(20240508)

題目描述

無線通信移動性需要在基站上配置鄰區(本端基站的小區 LocalCell 與周邊鄰基站的小區 NeighborCelI 映射)關系,

為了能夠加速無線算法的計算效率,設計一個鄰區關系緩存表,用于快速的通過本小區 LocalCell 查詢到鄰小區 NeighborCell。

但是緩存表有一定的規格限制,因此到達規格并且需要插入新的數據時,需要刪除鄰區數據,選擇刪除鄰區數據對象的策略為:

  • 1) 使用次數最少的
  • 2) 如果 1) 返回有多個對象,則選擇最久未使用的

請設計并實現一個滿足以上要求的數據結構和算法實現。

注:假設每個 LocalCell 至多只有一個 NeighborCell

輸入描述

  • 首行以字符 "capacity:" 標識設置一個整數容量
  •  以 "write:" 標識開始進行若干組 [LocalCell,NeighborCell] 鄰區數據的輸入,每組數據為一行;如果 "write:" 已經存在的 LocalCell 數據,更新其對應的 NeighborCell,并刷新使用時間和次數加 1;如果某鄰區數據被刪除,緩存表不再保留其記錄
  •  以 "read:" 標識進行一次讀取 LocalCell 的使用操作,刷新使用時間和次數加 1
  •  最后以 "query:" 標識查詢輸出操作,輸入正整數 LocalCell,查詢 NeighborCell

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

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

相關文章

代碼隨想錄-Day07

454. 四數相加 II 給你四個整數數組 nums1、nums2、nums3 和 nums4 &#xff0c;數組長度都是 n &#xff0c;請你計算有多少個元組 (i, j, k, l) 能滿足&#xff1a; 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 輸入&#x…

系統磁盤高級管理、lvm例子、創建pv、創建VG、創建lv、磁盤擴展

LVM&#xff1a; 邏輯卷&#xff0c;動態調整分區大小&#xff0c;擴展性好 創建pv pvcreate &#xff1a; 將實體 partition 創建成為 PV &#xff1b; pvscan &#xff1a; 搜尋目前系統里面任何具有 PV 的磁盤&#xff1b; pvdisplay &#xff1a; 顯示出目前系統上面…

GNSS仿真測試之三種常用坐標系與轉換

作者介紹 在當今的全球導航衛星系統&#xff08;GNSS&#xff09;技術領域&#xff0c;仿真測試是評估和驗證GNSS接收機性能的關鍵環節&#xff0c;全球導航衛星系統&#xff08;GNSS&#xff09;仿真測試是確保GNSS接收機和導航解決方案在實際部署前能夠正確、可靠地工作的關鍵…

【git】學習記錄: 貯藏功能

Git 貯藏修改是一種臨時存儲工作目錄中已經修改但尚未提交的更改的機制。通過貯藏修改&#xff0c;你可以將當前的工作目錄狀態保存起來&#xff0c;以便你可以在之后的時間點重新應用這些更改&#xff0c;或者在不同的分支間切換時避免沖突。 要使用 Git 貯藏修改&#xff0c…

Linux(centos)常用命令

Linux&#xff08;Centos&#xff09;常用命令使用說明文檔 切換到/home目錄下 使用cd命令切換目錄&#xff0c;例如&#xff1a; cd /home列出/home目錄下的所有文件 使用ls命令列出目錄下的文件和子目錄&#xff0c;例如&#xff1a; ls /home新建目錄dir1 使用mkdir命…

頭歌OpenGauss數據庫-I.復雜查詢第1關:獲取前N名成績

本關任務&#xff1a;編寫函數來實現獲取前N名成績的方法。 提示&#xff1a;前面的實驗沒有提供編寫自定義函數的示例&#xff0c;需要參考OpenGauss數據庫文檔學習自定義函數的使用。 score表內容如下&#xff1a; IdScore13.5223.6534.2343.8554.2363.65 --#請在BEGIN - END…

python windows 開發.exe程序筆記

import win32api import win32gui import win32con import time import tkinter as tk## pyinstaller --onefile t4.py 將python 代碼打包為windows可執行文件 .exe ## airtext 大漠 def clickGoogle():hw win32gui.FindWindow("Chrome_WidgetWin_1", "新標…

解決Redis 緩存雪崩(過期時間不一致) 和 緩存穿透(黑名單)

解決Redis 緩存雪崩&#xff08;過期時間不一致&#xff09; 和 緩存穿透&#xff08;黑名單&#xff09; public Product getdetailById(Integer id) {String key "product." id;// 查詢黑名單中是否有該keyBoolean b hashOperations.hasKey(PROODUCT_DETAIL_B…

算法 Hw7

Hw 7 Graph Algorithm 1 Edge detection2 Reachability3 Bitonic shortest paths 1 Edge detection 由 Cut Property 可知&#xff1a;如果 e 是從某個集合 S 到補集 V?S 的開銷最小的邊&#xff0c;則 e 一定所有最小生成樹中。 由 Cycle Property 可知&#xff1a;如果 e 是…

Gradle常見問題及總結

使用android studio開發項目&#xff0c;難免遇到gradle相關的錯誤&#xff0c;在此總結。 gradle插件與gradle home版本關系錯誤 參考更新 Gradle Gradle下載太慢 Index of /gradle/ (tencent.com) 是國內下載地址,手動下載對應版本即可 緩存不刷新 問題描述 maven發布…

jenkins插件之xunit

分析測試工具執行的結果&#xff0c;并圖形化&#xff0c;比如phpunit&#xff0c;phpstan,可分析junit格式的結果 安裝jenkins插件 搜索xunit并安裝 項目配置 配置 - Build Steps 您的項目 - 配置 - Build Steps, 新增 Run with timeout 超時時間根據實際情況配置 Build…

Day38 貪心算法part05

LC435無重疊區間(未掌握) 思路&#xff1a;先對數組進行排序&#xff0c;找到非重疊的區間的個數&#xff0c;然后區間的總數減去非重疊區間的個數即是需要移除的區間的個數與LC452用最少數量的箭引爆氣球類似&#xff0c;但是不同的是[1,2]和[2,3]在此題并不是重疊區間但是在…

oracle怎么處理json格式

向數據庫導入json相關jar包 loadjava -r -f -u bsuser/XXXX192.168.10.31/bsorcl json.jar 要刪除的話&#xff0c;刪除指定jar dropjava -u bsuser/XXXX192.168.10.31/bsorcl json.jar select * from user_java_classes 然后我們就可以取到json串中任意節點的值

Linux完整版命令大全(四)

2. linux系統設置命令 alias 功能說明&#xff1a;設置指令的別名。語  法&#xff1a;alias[別名][指令名稱]補充說明&#xff1a;用戶可利用alias&#xff0c;自定指令的別名。若僅輸入alias&#xff0c;則可列出目前所有的別名設置。 alias的效力僅及于該次登入的操作。…

行列視(RCV)部署在互聯網還是部署在企業內部?

行列視&#xff08;RCV&#xff09;的部署方式可以根據企業的具體需求和情況來靈活選擇。它既可以部署在互聯網上&#xff0c;也可以部署在企業內部。 對于希望實現遠程訪問、多地點協同工作或者與第三方服務集成等需求的企業&#xff0c;可以選擇將行列視&#xff08;RCV&…

Postgresql源碼(129)JIT函數中如何使用PG的類型llvmjit_types

0 總結 llvmjit_types文件分三部分 類型定義&#xff1a;llvm通過變量找到對應結構體的定義&#xff0c;在通過結構體內的偏移量宏使用成員變量。模版函數定義&#xff1a; 第一&#xff1a;AttributeTemplate被當做一個函數屬性的模板&#xff08;例如nofree、nosync等clang…

SpringBoot項目中redis序列化和反序列化LocalDateTime失敗

實體類中包含了LocalDateTime 類型的屬性&#xff0c;把實體類數據存入Redis后變成這樣&#xff1a; 此時&#xff0c;存入redis不會報錯&#xff0c;但是從redis獲取的時候&#xff0c;會報錯&#xff1a; com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Ca…

Springboot項目打包:將依賴的jar包輸出到指定目錄

場景 公司要對springboot項目依賴的jar包進行升級&#xff0c;但是遇到一個問題&#xff0c;項目打包之后&#xff0c;沒辦法看到他里面依賴的jar包&#xff0c;版本到底是不是升上去了&#xff0c;沒辦法看到。 下面是項目打的jar包 我們通過反編譯工具jdgui&#xff0c;來…

VUE3和VUE2

VUE3和VUE2 上一篇文章中&#xff0c;我們對VUE3進行了一個初步的認識了解&#xff0c;本篇文章我們來進一步學習一下&#xff0c;順便看一下VUE2的寫法VUE3是否能做到兼容&#x1f600;。 一、新建組件 我們在components中新建一個組件&#xff0c;名稱為Peron&#xff0c;…

緩存降級

當Redis緩存出現問題或者無法正常工作時,需要有一種應對措施,避免直接訪問數據庫而導致整個系統癱瘓。緩存降級就是這樣一種機制。 主要的緩存降級策略包括: 本地緩存降級 當Redis緩存不可用時,可以先嘗試使用本地進程內緩存,如Guava Cache或Caffeine等。這樣可以減少對Redis…