力扣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;
      }
  };
相关推荐
0 0 09 小时前
CCF-CSP 39-2 水印检查(watermark)【C++】
c++·算法
plus4s9 小时前
2月15日(78,80,81题)
c++·算法·图论
能源系统预测和优化研究10 小时前
【原创改进代码】考虑碳交易与电网交互波动惩罚的共享储能电站优化配置与调度模型
算法·能源
9359610 小时前
机考27 翻译21 单词14
c语言·数据结构·算法
RFG201210 小时前
20、详解Dubbo框架:消费方如何动态获取服务提供方地址?【微服务架构入门】
java·人工智能·后端·微服务·云原生·架构·dubbo
zjttsh11 小时前
Linux下安装Redis
java
回敲代码的猴子11 小时前
2月14日打卡
算法
TimberWill11 小时前
SpringBoot整合Srping Security实现权限控制
java·spring boot·后端
blackicexs12 小时前
第四周第七天
算法
期末考复习中,蓝桥杯都没时间学了12 小时前
力扣刷题19
算法·leetcode·职场和发展