力扣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;
      }
  };
相关推荐
白露与泡影6 分钟前
Spring Boot 完整流程
java·spring boot·后端
刀法如飞15 分钟前
Python列表去重:从新手三连到高阶特技,20种解法全收录
python·算法·编程语言
minji...17 分钟前
算法题 动态规划
算法·动态规划
空中海18 分钟前
第二章:Maven进阶篇 — 依赖管理与构建生命周期
java·maven
xun-ming28 分钟前
AI时代Java程序员自救手册
java·开发语言·人工智能
DavidSoCool28 分钟前
GB28181 PTZCmd 完整指令对照表(8 位 16 进制)+ 详细注释 + 使用说明
java·sip·gb28181
张健115640964832 分钟前
C++访问控制与友元
java·开发语言·c++
Sam_Deep_Thinking35 分钟前
中小团队需要一个资源微服务
java·微服务·架构
水蓝烟雨41 分钟前
3337. 字符串转换后的长度 II
算法·leetcode
Thanks_ks42 分钟前
透过 Copy-On-Write 机制:理解并发编程中的性能与一致性权衡
java·多线程·并发编程·底层原理·写时复制·copyonwrite·性能优