Re: [闲聊] 每日LeetCode

楼主: DJYOSHITAKA (Evans)   2024-02-20 23:38:37
1642. Furthest Building You Can Reach
前几天的
一开始想都不想直接DFS 当然是TLE 浪费了几分钟
后来想想应该就greedy 一开始先全用brick
当brick不够用的时候 回头把用最多brick的那一阶换成梯子
大概是这样 不过出来速度几乎垫底捏==
感觉跟大部分人的solution差不多才是
我也懒得检查ㄌ 我好烂
int furthestBuilding(vector<int>& heights, int bricks, int ladders) {
int idx;
priority_queue<int> diffs;
for(idx=1; idx<heights.size(); idx++)
{
if(heights[idx-1] >= heights[idx])
{
continue;
}
else
{
int diff = (heights[idx] - heights[idx-1]);
// using bricks first
bricks = bricks - diff;
diffs.push(diff);
// check if bricks ran out
if(bricks < 0)
{
// use one ladder
if(!diffs.empty() && ladders>0)
{
int max_diff_bricks = diffs.top();
bricks += max_diff_bricks;
ladders -= 1;
diffs.pop();
}
else
{
// can't reach
break;
}
}
}
}
return idx-1;
}
作者: medama ( )   2023-02-20 23:38:00
大师
作者: ILoveErr (英梨梨我老婆)   2024-02-20 23:39:00
大师
作者: JIWP (JIWP)   2024-02-20 23:45:00
大师
作者: JerryChungYC (JerryChung)   2024-02-20 23:57:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com