力扣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;
      }
  };
相关推荐
鱼鳞_1 分钟前
Java学习笔记_Day21
java·笔记·学习
码云数智-大飞1 分钟前
Java异常体系深度解析:驾驭Checked与Unchecked的艺术
java
fengci.4 分钟前
polar2026年春季个人挑战赛(WEB 困难部分)
java·大数据·elasticsearch
攒了一袋星辰10 分钟前
SequenceGenerator废弃序列号异步补偿机制技术实现方案
java·开发语言·数据库·mysql
算AI12 分钟前
重绘多孔世界的蓝图:GAN助力多孔材料的数字重构
人工智能·深度学习·算法·机器学习·生成对抗网络·ai
ZPC821016 分钟前
手柄替代键盘
人工智能·算法·性能优化·机器人
amIZ AUSK19 分钟前
Spring Boot 自动配置
java·spring boot·后端
努力学习的小廉19 分钟前
Python 零基础入门——基础语法(一)
java·网络·python
AI精钢27 分钟前
Claude Certification 出现了一道“官方文档级”错题:关于 Claude Code Skills 优先级的误导
java·开发语言·工程实践·claude code·ai coding·agent skills·技术认证
xvhao201333 分钟前
P4084 [USACO17DEC] Barn Painting G 题解
数据结构·c++·算法·深度优先·动态规划