力扣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;
      }
  };
相关推荐
BD_Marathon5 分钟前
设计模式——接口隔离原则
java·设计模式·接口隔离原则
练习时长一年7 分钟前
LeetCode热题100(颜色分类)
算法·leetcode·职场和发展
空空kkk9 分钟前
SSM项目练习——hami音乐(二)
java
说文科技14 分钟前
大模型项目实战之dpo微调
人工智能·算法
闻哥16 分钟前
深入理解 ES 词库与 Lucene 倒排索引底层实现
java·大数据·jvm·elasticsearch·面试·springboot·lucene
18 分钟前
java关于引用
java·开发语言
睡一觉就好了。21 分钟前
归并排序——递归与非递归的双重实现
数据结构·算法·排序算法
弹简特24 分钟前
【JavaEE04-后端部分】Maven 小介绍:Java 开发的构建利器基础
java·maven
酉鬼女又兒30 分钟前
SQL23 统计每个学校各难度的用户平均刷题数
数据库·sql·算法
爱学习的阿磊35 分钟前
模板代码跨编译器兼容
开发语言·c++·算法