Leetcode第36場雙周賽 前兩題題解

2021-10-09 23:26:34 字數 2458 閱讀 1281

t2.5516.警告一小時內使用相同員工卡大於等於三次的人

輸入:

["parkingsystem", "addcar", "addcar", "addcar", "addcar"]

[[1, 1, 0], [1], [2], [3], [1]]

輸出:[null, true, true, false, false]

解釋:parkingsystem parkingsystem = new parkingsystem(1, 1, 0);

parkingsystem.addcar(1); // 返回 true ,因為有 1 個空的大車位

parkingsystem.addcar(2); // 返回 true ,因為有 1 個空的中車位

parkingsystem.addcar(3); // 返回 false ,因為沒有空的小車位

parkingsystem.addcar(1); // 返回 false ,因為沒有空的大車位,唯一乙個大車位已經被佔據了

class

parkingsystem

public

boolean

addcar

(int cartype)

else

if(cartype ==

2&& medium >0)

else

if(cartype ==

3&& small >0)

return

false;}

}

力扣公司的員工都使用員工卡來開辦公室的門。每當乙個員工使用一次他的員工卡,安保系統會記錄下員工的名字和使用時間。如果乙個員工在一小時時間內使用員工卡的次數大於等於三次,這個系統會自動發布乙個

警告 。

給你字串陣列 keyname 和 keytime ,期中 [keyname[i], keytime[i]] 對應乙個人的名字和他在 某一天

內使用員工卡的時間。

使用時間的格式是 24小時制 ,形如 「hh:mm」 ,比方說 「23:51」 和 「09:49」 。

請你返回去重後的收到系統警告的員工名字,將它們按 字典序公升序 排序後返回。

請注意 「10:00」 - 「11:00」 視為乙個小時時間範圍內,而 「23:51」 - 「00:10」

不被視為一小時內,因為系統記錄的是某一天內的使用情況。

示例 1:

輸入:keyname = ["daniel","daniel","daniel","luis","luis","luis","luis"], keytime = ["10:00","10:40","11:00","09:00","11:00","13:00","15:00"]

輸出:["daniel"]

解釋:"daniel" 在一小時內使用了 3 次員工卡("10:00","10:40","11:00")。

示例 2:

輸入:keyname = ["alice","alice","alice","bob","bob","bob","bob"], keytime = ["12:01","12:00","18:00","21:00","21:20","21:30","23:00"]

輸出:["bob"]

解釋:"bob" 在一小時內使用了 3 次員工卡("21:00","21:20","21:30")。

示例 3:

輸入:keyname = ["john","john","john"], keytime = ["23:58","23:59","00:01"]

輸出:

class

solution

//計算使用時間

string[

] times = keytime[i]

.split

(":");

int first = integer.

parseint

(times[0]

);int second = integer.

parseint

(times[1]

);map.

get(keyname[i]).

add(first *

60+ second);}

//遍歷之後每個list要進行排序,否則會漏掉情況

for(string key : map.

keyset()

)}}//排序後返回

collections.

sort

(res)

;return res;

}}

leetcode第8場雙周賽

這次雙周賽有意外,第二第三題按照提示返回int會報錯,要返回list 第一題給你乙個字串 s,返回只含 單一字母 的子串個數。示例 1 輸入 aaaba 輸出 8 解釋 只含單一字母的子串分別是 aaa aa a b aaa 出現 1 次。aa 出現 2 次。a 出現 4 次。b 出現 1 次。所以...

leetcode第 24 場雙周賽

給你乙個整數陣列nums。你可以選定任意的正數startvalue 作為初始值。你需要從左到右遍歷nums陣列,並將 startvalue 依次累加上nums陣列中的值。請你在確保累加和始終大於等於 1 的前提下,選出乙個最小的正數作為 startvalue 輸入 nums 3,2,3,4,2 輸出...

leetcode 第27場雙周賽

通過翻轉子陣列使兩個陣列相等 檢查乙個字串是否包含所有長度為k的二進位制子串 課程安排 摘櫻桃 3分 簡單 4分 中等 5分 中等 6分 困難 翻譯下題意,其實就是問我們兩個陣列是否相等,判斷陣列是否相等有很多方法,這邊我直接排序,遍歷一遍看是否有不一樣的元素 陣列排序的複雜度,故為o nlogn ...