Re: [閒聊] 每日leetcode
看板Marginalman作者enmeitiryous (enmeitiryous)時間1年前 (2024/09/16 09:04)推噓0(0推 0噓 1→)留言1則, 1人參與討論串865/1554 (看更多)
昨天的好難,下課後再來想一下
題目: 539. Minimum Time Difference
給你一串24小時制的時間字串vector,求其中時間差最小是多少
思路:
以中午為界,一個時間和另一個時間差最小會是min(time1-time2,time1+24*60-time2),
所以我們可以在處理遇到一個時間時分別塞入time1和time1+24*60進set裡面,如果有
重複則直接return 0,全塞完後依序兩兩相鄰比較。
int getnu(string d){
return (atoi(d.substr(0,2).c_str())*60)+(atoi(d.substr(3,2).c_str()));
}
int findMinDifference(vector<string>& timePoints) {
set<int> pre_ans;
int ans=3700;
int temp=0;
for(auto h:timePoints){
temp=getnu(h);
if(pre_ans.count(temp)){
return 0;
}
else{
pre_ans.insert(temp);
pre_ans.insert(temp+24*60);
}
}
int re=-1;
for(auto k:pre_ans){
if(re==-1){
re=k;
}
else{
if(k-re<ans){
ans=k-re;
}
re=k;
}
}
return ans;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.20.227 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1726448698.A.117.html
→
09/16 16:26,
1年前
, 1F
09/16 16:26, 1F
討論串 (同標題文章)
完整討論串 (本文為第 865 之 1554 篇):