2023-12-24每日一题
一、题目编号
1954. 收集足够苹果的最小花园周长
二、题目链接
点击跳转到题目位置
三、题目描述
给你一个用无限二维网格表示的花园,每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| + |j| 个苹果。
你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 ,且每条边都与两条坐标轴之一平行。
给你一个整数 neededApples ,请你返回土地的 最小周长 ,使得 至少 有 neededApples 个苹果在土地 里面或者边缘上。
|x| 的值定义为:
- 如果 x >= 0 ,那么值为 x
- 如果 x < 0 ,那么值为 -x
示例 1:
示例 2:
示例 3:
提示:
- 1 <= neededApples <= 1015
四、解题代码
class Solution {
public:long long minimumPerimeter(long long neededApples) {long long left = 1, right = 100000, ans = 0;while (left <= right) {long long mid = (left + right) / 2;if (2 * mid * (mid + 1) * (mid * 2 + 1) >= neededApples) {ans = mid;right = mid - 1;}else {left = mid + 1;}}return ans * 8;}
};
五、解题思路
(1) 二分查找。