力扣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 and C4 小时前
MyBatisPlus
java
秋野酱4 小时前
如何在 Spring Boot 中实现自定义属性
java·数据库·spring boot
Bunny02125 小时前
SpringMVC笔记
java·redis·笔记
feng_blog66885 小时前
【docker-1】快速入门docker
java·docker·eureka
枫叶落雨2227 小时前
04JavaWeb——Maven-SpringBootWeb入门
java·maven
m0_748232397 小时前
SpringMVC新版本踩坑[已解决]
java
XianxinMao7 小时前
RLHF技术应用探析:从安全任务到高阶能力提升
人工智能·python·算法
码农小灰7 小时前
Spring MVC中HandlerInterceptor和Filter的区别
java·spring·mvc
hefaxiang7 小时前
【C++】函数重载
开发语言·c++·算法
乔木剑衣8 小时前
Java集合学习:HashMap的原理
java·学习·哈希算法·集合