力扣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;
      }
  };
相关推荐
niucloud-admin几秒前
java服务端——controller控制器
java·开发语言
To Be Clean Coder1 分钟前
【Spring源码】通过 Bean 工厂获取 Bean 的过程
java·后端·spring
永远都不秃头的程序员(互关)8 分钟前
C++动态数组实战:从手写到vector优化
c++·算法
Fortunate Chen8 分钟前
类与对象(下)
java·javascript·jvm
程序员水自流9 分钟前
【AI大模型第9集】Function Calling,让AI大模型连接外部世界
java·人工智能·llm
‿hhh12 分钟前
综合交通运行协调与应急指挥平台项目说明
java·ajax·npm·json·需求分析·个人开发·规格说明书
小徐Chao努力12 分钟前
【Langchain4j-Java AI开发】06-工具与函数调用
java·人工智能·python
无心水15 分钟前
【神经风格迁移:全链路压测】33、全链路监控与性能优化最佳实践:Java+Python+AI系统稳定性保障的终极武器
java·python·性能优化
萧曵 丶23 分钟前
Synchronized 详解及 JDK 版本优化
java·多线程·synchronized
夏幻灵38 分钟前
JAVA基础:基本数据类型和引用数据类型
java·开发语言