力扣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;
      }
  };
相关推荐
清风徐来QCQ6 分钟前
javaScript(map,ref,?,forEach,watch)
java·前端·javascript
7***n759 分钟前
Java构建工具
java·开发语言
Dandelion____z27 分钟前
AI 驱动业务的致命风险:如何用架构设计守住安全底线?
java·大数据·人工智能·spring boot·aigc·jboltai
Q***K5530 分钟前
Kotlin与Java互操作指南
java·开发语言·kotlin
MobotStone1 小时前
从问答到决策:Agentic AI如何重新定义AI智能体的未来
人工智能·算法
星空的资源小屋1 小时前
永久删除文件利器:Permadelete
java·javascript·人工智能
2201_757830871 小时前
Stream的终结方法
java·服务器·前端
今天没ID1 小时前
Java 数组进阶操作
java
卷到起飞的数分1 小时前
5.MyBatis持久(dao)层框架
java·数据库·mybatis
XUN4J1 小时前
Java没有指针,那它是怎么干C语言里指针干的活的?
java