力扣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;
      }
  };
相关推荐
Memory_荒年几秒前
Netty:从“网络搬砖”到“流水线大师”的奇幻之旅
java·后端
ChaseDreamRunner14 分钟前
如何用 NSSM 把 Jar 做成 Windows 服务
java·windows·jar
神の愛16 分钟前
java的Aop
java·开发语言
励志的小陈26 分钟前
双指针算法--移除元素、删除有序数组中的重复项、合并两个有序数组
算法
左左右右左右摇晃27 分钟前
ConcurrentHashMap ——put + get
java·开发语言·笔记
啥咕啦呛40 分钟前
java打卡学习4:HashMap底层结构、扩容机制
java·学习·哈希算法
qq_297574671 小时前
K8s系列第十四篇:K8s 故障排查实战:常见故障定位与解决方法
java·docker·kubernetes
Flittly1 小时前
【SpringAIAlibaba新手村系列】(3)ChatModel 与 ChatClient 的深度对比
java·人工智能·spring boot·spring
2401_835792541 小时前
Java复习上
java·开发语言·python
hoiii1871 小时前
Mean Shift目标跟踪算法MATLAB实现
算法·matlab·目标跟踪