LeetCode:1739. 放置盒子
找规律, 数学归纳
从 0 开始,与地面接触的盒子每增加一个,可以放置的总盒子数就会增加 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5 … 个。
可以通过 二分 实现 logn
AC Code
class Solution {
public int minimumBoxes(int n) {
// 找规律,数学归纳
int cap = 0, idx = 0, len = 1;
while(cap < n) {
for(int i = 1; i <= len; i++) {
cap += i;
idx++;
if(cap >= n) break;
}
len++;
}
return idx;
}
}