力扣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;
      }
  };
相关推荐
自然数e1 分钟前
c++多线程【多线程常见使用以及几个多线程数据结构实现】
数据结构·c++·算法·多线程
黛色正浓4 分钟前
leetCode-热题100-普通数组合集(JavaScript)
java·数据结构·算法
元亓亓亓8 分钟前
LeetCode热题100--5. 最长回文子串--中等
linux·算法·leetcode
月明长歌8 分钟前
Java多线程线程池ThreadPoolExecutor理解总结:6 个核心参数 + 4 种拒绝策略(附完整示例)
java·开发语言
找不到、了9 分钟前
JVM 跨代引用与 Card Table 机制
java·jvm
sunywz11 分钟前
【JVM】(2)java类加载机制
java·jvm·python
千金裘换酒12 分钟前
LeetCode 环形链表+升级版环形链表
算法·leetcode·链表
小鸡吃米…12 分钟前
机器学习中的随机森林算法
算法·随机森林·机器学习
进阶小白猿16 分钟前
Java技术八股学习Day13
java·jvm·学习
CodeAmaz23 分钟前
ConcurrentHashMap(JDK 7/8)详细介绍
java·hashmap·线程安全map