力扣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;
      }
  };
相关推荐
czc6663 分钟前
【项目实战】Redis+RabbitMQ+MySQL双阈值批量异步落库设计
java
不会c嘎嘎4 分钟前
算法百练 ,直击OFFER -- DAY7
算法
尼古拉斯·纯情暖男·天真·阿玮10 分钟前
[JavaEE初阶] 进程和线程的区别和联系
java·开发语言
浅川.2511 分钟前
xtuoj 不定方程的正整数解
算法
dog25014 分钟前
让算法去学习,而不是去启发
学习·算法
草莓熊Lotso22 分钟前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--04.解码方法
c++·人工智能·算法·动态规划
alphaTao23 分钟前
LeetCode 每日一题 2025/12/1-2025/12/7
数据库·算法·leetcode
苏小瀚24 分钟前
[算法]---分治-快排和归并
java·算法·leetcode
Jac_kie_層樓25 分钟前
力扣hot100刷题记录(12.1)
算法·leetcode·职场和发展