力扣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;
      }
  };
相关推荐
U盘失踪了6 小时前
Java 的 JAR 是什么?
java·jar
_深海凉_7 小时前
LeetCode热题100-有效的括号
linux·算法·leetcode
今天又在写代码7 小时前
java-v2
java·开发语言
competes7 小时前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql
2501_913061348 小时前
网络原理知识
java·网络
希望永不加班8 小时前
Spring AOP 代理模式:CGLIB 与 JDK 动态代理区别
java·开发语言·后端·spring·代理模式
flushmeteor9 小时前
java的动态代理和字节码生成技术
java·动态代理·代理·字节码生成
eggwyw9 小时前
基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
java·spring boot·spring
0xDevNull9 小时前
MySQL 别名(Alias)指南:从入门到避坑
java·数据库·sql
被开发耽误的大厨9 小时前
1、==、equals、hashCode底层原理?重写场景?
算法·哈希算法