力扣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;
      }
  };
相关推荐
我超级能吃的几秒前
HashMap
java
℉AVE2 分钟前
点集配准---迭代最近点算法ICP(Iterative Closest Point)
算法
Dolphin_Home5 分钟前
深度解析:SpringBoot 静态类调用 Bean 的底层逻辑与最优实践
java·spring boot·后端
大数据魔法师7 分钟前
聚类算法(一)- K-Means聚类
算法·kmeans·聚类
故渊ZY11 分钟前
Spring JavaConfig:注解驱动的配置革命
java·spring
一水鉴天13 分钟前
整体设计 定稿 之20 拼语言表述体系之3 dashboard.html完整代码
java·前端·javascript
静若繁花_jingjing14 分钟前
Spring Bean基础
java·后端·spring
CoderYanger18 分钟前
A.每日一题——2141.同时运行N台电脑的最长时间
java·算法·leetcode·职场和发展·1024程序员节
旺仔Sec18 分钟前
2025年广东省职业院校技能大赛应用软件系统开发赛项(高职组)赛题(一)
java·应用软件系统开发
Ayanami_Reii20 分钟前
进阶数据结构-线段树
数据结构·算法·线段树