力扣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;
      }
  };
相关推荐
椰羊~王小美4 小时前
嵌入式 和 单片机
java·单片机·嵌入式硬件
低客的黑调4 小时前
Redis-不止是缓存
java·开发语言·数据库
噢,我明白了4 小时前
Java 入门,详解List,Map集合使用
java·list·map
德索精密工业-胡工4 小时前
M12连接器的增强技术:在高电磁干扰的车间里它是如何“活下来”的?
算法
ZenosDoron4 小时前
函数形参传数组
java·jvm·算法
极客天成ScaleFlash4 小时前
极客天成 NVFile 存算融合解决方案
算法·数据挖掘
一只幸运猫.4 小时前
字节跳动Java大厂面试版
java·开发语言·面试
xier_ran4 小时前
【C++】“内部”、“外部”、“派生类”、“友元“类
java·开发语言·c++
Reisentyan4 小时前
[杭电春季联赛5]1004 赛马
算法
雨墨✘4 小时前
基于比较的三种排序算法:插入排序、合并排序和快排序
数据结构·算法·排序算法