力扣周赛第252期(下)

304 阅读2分钟

这是我参与8月更文挑战的第16天,活动详情查看:8月更文挑战

1953. 你可以工作的最大周数

截屏2021-08-16 下午9.34.12.png

思路分析

这道题应该就是找到最大周阶段任务数max,以及其余周阶段任务数和sum,如果sum >= max 则最多工作sum + max周,否则最多工作 2 * sum + 1周.

(一个简单的数学题)

1954. 收集足够苹果的最小花园周长

截屏2021-08-16 下午9.44.21.png

思路分析

你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 ,因此周长其实就是你离中心的距离乘以8,又由于每个节点的苹果树的数量和节点坐标有固定的关系,所以一定具有一个公式,可以计算出当距离为i的时候,所有节点的苹果树数量Sum。

对于左下角在 (-i,-i),右上角在 (i,i) 的这一圈苹果树,将这一圈拆分成四角的 44 个苹果树,坐标包含 0 的 4 个苹果树,由于对称性,其余苹果树均可视作从 (i,1) 到 (i,i-1) 的苹果树,这有 8 段。

四角的 4 个苹果树共有 8i 个苹果,坐标包含 0 的 4 个苹果树共有 4i 个苹果,从 (i,1)到 (i,i-1) 的苹果树有 i(i1)2+i(i1)\dfrac{i(i-1)}{2}+i(i-1) 个苹果,乘上 8 得 12i(i-1)个苹果,因此这一圈共有 12i^2个苹果。

image.png

根据平方和公式,得到Sum = 2n(n+1)(2n+1).

在有公式的情况下,我们就可以通过遍历的方式得到答案,但是这道题也可以剪枝来解决。

很明显,可以通过在(1,n)的范围内二分查找来将时间复杂度降低