1642 可以到達的最遠建築

2021-10-22 17:35:17 字數 545 閱讀 5138

class solution 

priority_queueq;

int qsum = 0;

int lastpos = 0;

int preheight = heights[0];

for (int i =0; i < heights.size(); i++) else

//看過一番處理後還是不能跳到這個位置

if (qsum <= bricks) else

}//更新位置的高度

preheight = curheight;

}return lastpos;

}};

複雜度分析:在跳躍的過程中,最差的情況下,我們需要把所有的高度差記錄下來。在這種情況下,每個高度差都需要執行 push 操作。那麼時間複雜度為 o(nlgn),空間複雜度為o(n)。

【小結】

需要將消耗的過程,轉換為儲存的過程(記錄在小本子上),對應堆的 push;

需要優先消除一些元素,對應堆的 pop

鏈結

leetcode1642 可以到達的最遠建築

給你乙個整數陣列 heights 表示建築物的高度。另有一些磚塊 bricks 和梯子 ladders 你從建築物 0 開始旅程,不斷向後面的建築物移動,期間可能會用到磚塊或梯子。當從建築物 i 移動到建築物 i 1 下標 從 0 開始 時 如果當前建築物的高度 大於或等於 下一建築物的高度,則不需...

LeetCode 5556 可以到達的最遠建築

給你乙個整數陣列 heights 表示建築物的高度。另有一些磚塊 bricks 和梯子 ladders 你從建築物 0 開始旅程,不斷向後面的建築物移動,期間可能會用到磚塊或梯子。當從建築物 i 移動到建築物 i 1 下標 從 0 開始 時 如果當前建築物的高度 大於或等於 下一建築物的高度,則不需...

求樹上每個節點可以走到的最遠距離

給定一棵樹,樹中包含 n 個結點 編號1 n 和 n 1 條無向邊,每條邊都有乙個權值。請你在樹中找到乙個點,使得該點到樹中其他結點的最遠距離最近。輸入格式 第一行包含整數 n。接下來 n 1 行,每行包含三個整數 ai,bi,ci,表示點 ai 和 bi 之間存在一條權值為 ci 的邊。輸出格式 ...