binarysearch Minimum Light Radius

简介: 代码如下

问题


You are given a list of integers nums representing coordinates of houses on a 1-dimensional line. You have 3 street lights that you can put anywhere on the coordinate line and a light at coordinate x lights up houses in [x - r, x + r], inclusive. Return the smallest r required such that we can place the 3 lights and all the houses are lit up.


Constraints


n ≤ 100,000 where n is the length of nums


Example 1
Input
nums = [3, 4, 5, 6]
Output
0.5
Explanation
If we place the lamps on 3.5, 4.5 and 5.5 then with r = 0.5 we can light up all 4 houses.

思路

根据最左二分法的模板逐步遍历

代码

  • 语言支持:Python3

Python3 Code:

class Solution:
    def solve(self, nums):
        if len(nums) <= 3:
            return 0
        nums.sort()
        def possible(d):
            start = nums[0]
            end = start + d
            for i in range(3):
                index = bisect.bisect_right(nums, end)
                if index >= len(nums):
                    return True
                start = nums[index]
                end = start + d
            return False
        l, r = 0, nums[-1] - nums[0]
        while l <= r:
            mid = (l + r) // 2
            if possible(mid):
                r = mid - 1
            else:
                l = mid + 1
        return l / 2

复杂度分析

令 n 为数组长度。

  • 时间复杂度:O(nlogn)O(nlogn)O(nlogn)
  • 空间复杂度:O(1)O(1)O(1)
目录
打赏
0
0
0
0
1
分享
相关文章
解决RenderUiKitView object was given an infinite size during layout.
解决RenderUiKitView object was given an infinite size during layout.
57 3
CSS font-weight 值对应(Regular、Normal、Medium、Light)
CSS font-weight 值对应(Regular、Normal、Medium、Light)
2677 0
Mysterious Light——AT
题目描述 Snuke is conducting an optical experiment using mirrors and his new invention, the rifle of Mysterious Light. Three mirrors of length N are set so that they form an equilateral triangle. Let the vertices of the triangle be a,b and c.
139 0
Mysterious Light——AT
meta name= viewport content= width=device-width initial-scale=1 minimum-scale=1 maximum-scale=1的作用
meta name= viewport content= width=device-width initial-scale=1 minimum-scale=1 maximum-scale=1的作用
630 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等