力扣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;
      }
  };
相关推荐
一只小小Java7 分钟前
Java面试场景高频题
java·开发语言·面试
沛沛老爹8 分钟前
Web开发者快速上手AI Agent:基于Function Calling的12306自动订票系统实战
java·人工智能·agent·web转型
CRUD酱11 分钟前
后端使用POI解析.xlsx文件(附源码)
java·后端
亓才孓11 分钟前
多态:编译时看左边,运行时看右边
java·开发语言
苦藤新鸡17 分钟前
6.三数之和
c语言·c++·算法·力扣
2501_9418024824 分钟前
从缓存更新到数据一致性的互联网工程语法实践与多语言探索
java·后端·spring
拆房老料36 分钟前
文档预览开源选型对比:BaseMetas FileView 与 KK FileView,谁更适合你的系统?
java·开源·java-rocketmq·开源软件
Frank_refuel37 分钟前
C++之内存管理
java·数据结构·c++
钱多多_qdd1 小时前
springboot注解(五)
java·spring boot·后端
s09071361 小时前
连通域标记:从原理到数学公式全解析
图像处理·算法·fpga开发·连通域标记