【LeetCode刷题】410. 分割数组的最大值

  • [1. 题目链接](#1. 题目链接)
  • [2. 题目描述](#2. 题目描述)
  • [3. 解题方法](#3. 解题方法)
  • [4. 代码](#4. 代码)

1. 题目链接

410. 分割数组的最大值

2. 题目描述

3. 解题方法

题目中提到的是某个和的最大值是最小的,这种题目是可以用二分来解决的。

  1. 确定区间,根据题目的数据范围,可以确定区间就是0, 1e9。
  2. 每次找到的数,都要去check一下,看是否满足要求。
  3. 满足的条件就是,是否有子数组刚好等于这个数并且子数组的个数还必须小于题目给的k。

4. 代码

cpp 复制代码
class Solution {
public:
    int splitArray(vector<int>& nums, int k) 
    {
        int l = 0, r = (int)1e9;
        while(l < r)
        {
            int mid = (r - l) / 2 + l;
            if(check(mid, nums, k)) r = mid;
            else l = mid + 1;
        }
        return r;
    }
    bool check(int mid, vector<int>& nums, int k)
    {
        int cnt = 1, sum = 0;
        for(auto e : nums)
        {
            if(sum + e <= mid) sum += e;
            else 
            {
                if(e > mid) return false;
                cnt ++;
                sum = e;
            }
        }
        return cnt <= k;
    }
};

最后附上我的打卡记录,希望各位大佬可以监督我一下。

相关推荐
闻缺陷则喜何志丹3 小时前
详细设计说明书的内容要求
算法·测试·存储
考研保研资料分享3 小时前
车辆与机械保研经验合辑:西交、浙大预推免与专业笔试面试复盘
面试·职场和发展
和裕3 小时前
定制纸箱刀卡、平卡、隔档分别是什么?结构与适用场景区别全解析
大数据·运维·网络·人工智能·算法
尼给路达哟3 小时前
10.14面试高级python和agent
面试·职场和发展
Tisfy3 小时前
LeetCode 3723.数位平方和的最大值:构造
数学·算法·leetcode·字符串·题解
hetao17338373 小时前
联盟场-提高组-R4 & ZYZSC-S-Round 7
c++·算法
碧海银沙音频科技研究院3 小时前
基于炬芯ATS3089X音箱的音乐播放歌词显示功能实现
人工智能·驱动开发·嵌入式硬件·算法
知识分享小能手3 小时前
C学习教程,从入门到精通,C语言数组 —— 知识点详解(8)
c语言·学习·算法
hetao17338374 小时前
联盟场-提高组-R2 & ZYZSC-S-Round 5
c++·算法
其实防守也摸鱼4 小时前
Codex 下载与本地部署实战指南
linux·服务器·前端·数据库·算法·ai