力扣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;
      }
  };
相关推荐
短剑重铸之日几秒前
《设计模式》第四篇:观察者模式
java·后端·观察者模式·设计模式
近津薪荼1 分钟前
递归专题(2)——合并链表
c++·学习·算法·链表
手握风云-2 分钟前
JavaEE 进阶第十五期:Spring 日志的笔墨艺术
java·spring·java-ee
Asher阿舍技术站2 分钟前
【数字通信理论系列】四、载波相位同步
算法·载波同步
圣保罗的大教堂3 分钟前
leetcode 3013. 将数组分成最小总代价的子数组 II 困难
leetcode
仟濹6 分钟前
【Java加强】2 泛型 | 打卡day1
java·开发语言
-Try hard-6 分钟前
队列 | 二叉树
算法
Hx_Ma166 分钟前
SpringBoot注册格式化器
java·spring boot·后端
Sagittarius_A*8 分钟前
灰度变换与阈值化:从像素映射到图像二值化的核心操作【计算机视觉】
图像处理·人工智能·opencv·算法·计算机视觉·图像阈值·灰度变换
V胡桃夹子10 分钟前
VS Code / Lingma AI IDE Java 开发攻略手册
java·ide·人工智能