力扣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;
      }
  };
相关推荐
sheeta19988 分钟前
LeetCode 每日一题笔记 日期:2026.05.23 题目:1752. 检查数组是否经排序和轮转得到
笔记·算法·leetcode
likerhood10 分钟前
设计模式 · 代理模式(Proxy Pattern)java
java·设计模式·代理模式
Frostnova丶10 分钟前
【算法笔记】最短路径算法
笔记·算法·图论
東雪木10 分钟前
Java 基础语法与核心数据类型 专属复习笔记
java·开发语言·笔记·java面试
转型AI的宏达11 分钟前
解除autoclaw白名单审批机制
java·服务器·前端
ch.ju12 分钟前
Java程序设计(第3版)第四章——方法的重载
java·开发语言
小此方14 分钟前
Re:Linux系统篇(二十一)进程篇·六:穿过底层看本质,深入理解底层进程切换与 O(1) 调度算法
linux·驱动开发·算法
小O的算法实验室14 分钟前
2026年SEVC,层级分解协同演化算法+带有无人机的车辆路径路径规划
算法·无人机
ch.ju16 分钟前
Java Programming Chapter 4——Overloading of method
java·开发语言
dulu~dulu17 分钟前
大模型---工具调用
java·服务器·前端