#4473. 供暖器

    ID: 4473 传统题 1000ms 256MiB 尝试: 11 已通过: 4 难度: 9 上传者: 标签>其他二分查找双指针扫描基础算法排序难度普及+/提高双指针

供暖器

题目描述

冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。

在加热器的加热半径范围内的每个房屋都可以获得供暖。

现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。

注意:所有供暖器 heaters 都遵循你的半径标准,加热的半径也一样。

输入格式

第一行两个空格隔开的数,表示房屋个数 nn 和 供暖器个数 mm;

第二行 nn 个空格隔开的数,表示房屋位置;

第三行 mm 个空格隔开的数,表示供暖器位置。

输出格式

一行一个数表示可以覆盖所有房屋的最小加热半径。

样例

样例 1:

3 1
1 2 3
2
1

解释: 仅在位置 2 上有一个供暖器。如果我们将加热半径设为 1,那么所有房屋就都能得到供暖。

样例 2:

4 2
1 2 3 4
1 4
1

解释: 在位置 1, 4 上有两个供暖器。我们需要将加热半径设为 1,这样所有房屋就都能得到供暖。

样例 3:

2 1
1 5
2
3

提示:

  • 1<=n,m<=31041 <= n, m <= 3 * 10^4
  • 1<=houses[i],heaters[i]<=1091 <= houses[i], heaters[i] <= 10^9
}