LeetCode刷題記錄 第475題(供暖器)

2021-09-10 10:52:23 字數 1298 閱讀 9231

冬季已經來臨。 你的任務是設計乙個有固定加熱半徑的供暖器向所有房屋供暖。

現在,給出位於一條水平線上的房屋和供暖器的位置,找到可以覆蓋所有房屋的最小加熱半徑。

所以,你的輸入將會是房屋和供暖器的位置。你將輸出供暖器的最小加熱半徑。

說明:

給出的房屋和供暖器的數目是非負數且不會超過 25000。

給出的房屋和供暖器的位置均是非負數且不會超過10^9。

只要房屋位於供暖器的半徑內(包括在邊緣上),它就可以得到供暖。

所有供暖器都遵循你的半徑標準,加熱的半徑也一樣。

示例 1:

輸入: [1,2,3],[2]

輸出: 1

解釋: 僅在位置2上有乙個供暖器。如果我們將加熱半徑設為1,那麼所有房屋就都能得到供暖。

示例 2:

輸入: [1,2,3,4],[1,4]

輸出: 1

解釋: 在位置1, 4上有兩個供暖器。我們需要將加熱半徑設為1,這樣所有房屋就都能得到供暖。

思路來自:

class

solution

(object):

deffindradius

(self, houses, heaters)

:"""

:type houses: list[int]

:type heaters: list[int]

:rtype: int

"""houses.sort(

) heaters.sort(

) maxidx=

0 index=

0for i in

range

(len

(houses)):

while index+

1<

len(heaters)

and(

abs(heaters[index+1]

-houses[i]

)<=

abs(heaters[index]

-houses[i]))

: index+=

1 maxidx=

max(maxidx,

abs(heaters[index]

-houses[i]))

return maxidx

leetcode刷題記錄

我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...

LeetCode刷題記錄

動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...

leetcode刷題記錄

工作之餘刷刷題排解下寂寞 1 面試題66.構建乘積陣列 解題思路 題目要求可以簡化為求陣列中任意乙個元素左右兩邊所有元素的乘積。偷懶就用了乙個套路,練習了p c c python class solution def constructarr self,a list int list int 除法是...