力扣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;
      }
  };
相关推荐
LJianK113 小时前
Java中的类、普通类,抽象类,接口的区别
java·开发语言
花月C13 小时前
线性动态规划(Linear DP)
算法·动态规划·代理模式
派大星~课堂13 小时前
【力扣-148. 排序链表】Python笔记
python·leetcode·链表
LiLiYuan.13 小时前
【Java线程 vs 虚拟机线程】
java·开发语言
hetao173383713 小时前
2025-03-24~04-06 hetao1733837 的刷题记录
c++·算法
小白菜又菜13 小时前
Leetcode 657. Robot Return to Origin
python·leetcode·职场和发展
_深海凉_13 小时前
LeetCode热题100-环形链表
算法·leetcode·链表
原来是猿13 小时前
Linux进程信号详解(三):信号保存
开发语言·c++·算法
2402_8813193014 小时前
跨服务通信兜底机制-Java 回传失败无持久重试队列,报告可能静默丢失。
java·开发语言·python
2401_8920709814 小时前
算法与数据结构精讲:最大子段和(暴力 / 优化 / 分治)+ 线段树从入门到实战
c++·算法·线段树·最大子段和