Problem: 1953. 你可以工作的最大周数
Code
class Solution {
public:
long long numberOfWeeks(vector<int>& milestones) {
// 自己想的思路是每次取出那个剩余时间最多的任务来做(但是注意不能连着两次都取到同一个任务来做);然后每次取数字之前判断一下是否符合取数的条件
// 结果发现这其实是一道类似数学的题目!!!
// typedef long long LL;
long long mx = *max_element(milestones.begin(), milestones.end());
long long res = accumulate(milestones.begin(), milestones.end(), 0LL) - mx;
if(mx > res + 1) {
return res * 2 + 1;
}
return mx + res;
}
};