力扣410.分割数组的最大值

力扣410.分割数组的最大值

  • 分割数组 使得子数组最大值最小

    • 凡是最小化最大值和最大化最小值的题都是二分答案
    • 二分子数组最大值 求当前数组可以分为几段
cpp 复制代码
  class Solution {
  public:
      int splitArray(vector<int>& nums, int k) {
          auto check = [&](int mid) -> bool 
          {
              int cnt = 1,s = 0;
              for(int x:nums)
              {
                  if(s + x <= mid)
                      s += x;
                  else
                  {
                      if(cnt ++ == k) return false;
                      s = x;
                  }
              }
              return true;
          };
          int l = ranges::max(nums) , r = accumulate(nums.begin(),nums.end(),0);
          while(l<r)
          {
              int mid = l + r >> 1;
              if(check(mid)) r = mid;
              else l = mid + 1;
          }
          return l;
      }
  };
相关推荐
虾..1 分钟前
Linux 简单日志程序
linux·运维·算法
Trent19859 分钟前
影楼精修-眼镜祛反光算法详解
图像处理·人工智能·算法·计算机视觉·aigc
蓝色汪洋10 分钟前
经典修路问题
开发语言·c++·算法
Knight_AL13 分钟前
Spring AOP 中 JoinPoint 使用指南
java·python·spring
jmxwzy18 分钟前
点赞系统问题
java·redis·tidb·pulsar
csuzhucong20 分钟前
122魔方、123魔方
算法
ss27321 分钟前
ThreadPoolExecutor:自定义线程池参数
java·开发语言
Salt_072834 分钟前
DAY 40 早停策略和模型权重的保存
人工智能·python·算法·机器学习
invicinble41 分钟前
关于fastjson的具体使用案例
java
卜锦元1 小时前
Golang后端性能优化手册(第三章:代码层面性能优化)
开发语言·数据结构·后端·算法·性能优化·golang