LeetCode 5831. 你可以工作的最大周数(对称抵消)

Posted live4m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 5831. 你可以工作的最大周数(对称抵消)相关的知识,希望对你有一定的参考价值。

题意:


解法:

对称抵消的想法:
设数组的最大值=ma,数组的和=sum.

如果ma*2<=sum,那么一定可以全部消去,答案为sum.
如果ma*2>sum,那么答案为(sum-ma)*2+1.

code:

class Solution {
public:
    long long numberOfWeeks(vector<int>& a) {
        int ma=0;
        long long sum=0;
        for(auto i:a)ma=max(ma,i),sum+=i;
        if(ma*2<=sum)return sum;
        else return (sum-ma)*2+1;
    }
};

以上是关于LeetCode 5831. 你可以工作的最大周数(对称抵消)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode周赛252场:时隔半年再来练习

LeetCode周赛252场:时隔半年再来练习

Elixir/Phoenix 日期从工作日 + 周数

[leetcode 周赛 159] 1235 规划兼职工作

算法:根据周数获取明年日期工作班次类型

LeetCode:安排工作以达到最大收益455