日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

LeetCode 379. 电话目录管理系统(哈希set)

發(fā)布時(shí)間:2024/7/5 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 379. 电话目录管理系统(哈希set) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

設(shè)計(jì)一個(gè)電話目錄管理系統(tǒng),讓它支持以下功能:

  • get: 分配給用戶一個(gè)未被使用的電話號(hào)碼,獲取失敗請(qǐng)返回 -1
  • check: 檢查指定的電話號(hào)碼是否被使用
  • release: 釋放掉一個(gè)電話號(hào)碼,使其能夠重新被分配
示例: // 初始化電話目錄,包括 3 個(gè)電話號(hào)碼:0,1 和 2。 PhoneDirectory directory = new PhoneDirectory(3);// 可以返回任意未分配的號(hào)碼,這里我們假設(shè)它返回 0。 directory.get();// 假設(shè),函數(shù)返回 1。 directory.get();// 號(hào)碼 2 未分配,所以返回為 true。 directory.check(2);// 返回 2,分配后,只剩一個(gè)號(hào)碼未被分配。 directory.get();// 此時(shí),號(hào)碼 2 已經(jīng)被分配,所以返回 false。 directory.check(2);// 釋放號(hào)碼 2,將該號(hào)碼變回未分配狀態(tài)。 directory.release(2);// 號(hào)碼 2 現(xiàn)在是未分配狀態(tài),所以返回 true。 directory.check(2);提示: 1 <= maxNumbers <= 10^4 0 <= number < maxNumbers 調(diào)用方法的總數(shù)處于區(qū)間 [0 - 20000] 之內(nèi)

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/design-phone-directory
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

2. 解題

  • 兩個(gè)哈希set,一個(gè)存儲(chǔ)沒(méi)有使用的,一個(gè)存儲(chǔ)使用過(guò)的,來(lái)回傳遞號(hào)碼
class PhoneDirectory {unordered_set<int> unused, used;int tel; public:/** Initialize your data structure here@param maxNumbers - The maximum numbers that can be stored in the phone directory. */PhoneDirectory(int maxNumbers) {for(int i = 0; i < maxNumbers; ++i)unused.insert(i);}/** Provide a number which is not assigned to anyone.@return - Return an available number. Return -1 if none is available. */int get() {if(unused.empty()) return -1;tel = *unused.begin();unused.erase(*unused.begin());used.insert(tel);return tel;}/** Check if a number is available or not. */bool check(int number) {return unused.find(number) != unused.end();//沒(méi)有用過(guò)}/** Recycle or release a number. */void release(int number) {used.erase(number);unused.insert(number);} };

104 ms 23.3 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!

總結(jié)

以上是生活随笔為你收集整理的LeetCode 379. 电话目录管理系统(哈希set)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。