力扣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;
      }
  };
相关推荐
ZBritney几秒前
JAVA中的多线程
java
whn19774 分钟前
达梦数据库的整体负载变化查看
java·开发语言·数据库
小满、4 分钟前
RabbitMQ:Fanout、Direct、Topic 交换机、队列声明与消息转换器
java·分布式·消息队列·rabbitmq·spring amqp
xie_pin_an7 分钟前
深入解析 C 语言排序算法:从快排优化到外排序实现
c语言·算法·排序算法
Hcoco_me11 分钟前
机器学习核心概念与主流算法(通俗详细版)
人工智能·算法·机器学习·数据挖掘·聚类
Hcoco_me12 分钟前
嵌入式场景算法轻量化部署checklist
算法
咸鱼加辣13 分钟前
【python面试】Python 的 lambda
javascript·python·算法
檀越剑指大厂13 分钟前
【Idea系列】换行处理
java·ide·intellij-idea
Jerryhut17 分钟前
sklearn函数总结十二 —— 聚类分析算法K-Means
算法·kmeans·sklearn
wanghowie27 分钟前
01.04 Java基础篇|泛型、注解与反射实战
java·开发语言·windows