首页 > 其他分享 >410. 分割数组的最大值

410. 分割数组的最大值

时间:2022-08-17 00:14:20浏览次数:80  
标签:cnt nums int 最大值 num 410 low 数组

 

labuladong 题解 难度困难

给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。

设计一个算法使得这 m 个子数组各自和的最大值最小。

 

示例 1:

输入:nums = [7,2,5,10,8], m = 2
输出:18
解释:
一共有四种方法将 nums 分割为 2 个子数组。 
其中最好的方式是将其分为 [7,2,5] 和 [10,8] 。
因为此时这两个子数组各自的和的最大值为18,在所有情况中最小。

示例 2:

输入:nums = [1,2,3,4,5], m = 2
输出:9

示例 3:

输入:nums = [1,4,4], m = 3
输出:4

 

提示:

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] <= 106
  • 1 <= m <= min(50, nums.length)

 

 

 

 

class Solution {
public:
    int get_cnt(vector<int>& nums, int target) {
        int cnt = 1, cur_sum = 0;
        for(auto num: nums) {
            if (cur_sum+num>target) {
                cur_sum = 0;
                cnt++;
            }
            cur_sum+=num;
        }
        return cnt;
    }
 
    int splitArray(vector<int>& nums, int m) {
        int low = 0, high = 0;
        for (auto num:nums) {
            high += num;
            low = max(low,num);
        }
        while(low < high) {
            int mid = low + (high-low)/2;
            int m_cnt = get_cnt(nums,mid);
            if (m_cnt <= m) {
                high = mid ;
            } else {
                low = mid + 1;
            }
        }
        return low;
    }
};

 

标签:cnt,nums,int,最大值,num,410,low,数组
From: https://www.cnblogs.com/zle1992/p/16593466.html

相关文章

  • 数组
    数组1.定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成2.数组的声明和创建packagecom.ylmxy.array;publicc......
  • 239.sliding-window-maxium 滑动窗口最大值
    采用双端队列deque,并且保证deque从前往后依次递减,并且出现在deque里面的相邻两数,其在原滑动窗口中,两数中间的数一定比这两个数小。为了保证这一点,在push_back()时,如果deque......
  • MAC 转 Byte[] 数组
    MAC转Byte[]数组/***MAC地址转byte[]*默认以小端序转换**@parammacAddr"E4:54:E8:81:FC:FD"*@returnbyte数组*/publicstaticbyte[]macToByt......
  • vba 数组判断与转换
    PrivateFunctionCountArr(arr)'*****************************'计算数组是几维数组'*****************************Dimi%,j%OnErrorGoToerrFori=1To10......
  • 数组-二分类
    数组二分法查找前提数组为有序数组;数组中没有重复元素。优点逻辑简单难点涉及很多边界条件,对区间定义不清楚,二分法则容易写乱解决方法:原则:循环不变量规则二......
  • 数组 各种方法的效率问题
    slice与filter的效率对比(无条件筛选)数据条数:5000条,slice效率1ms以内filter效率1.5ms以内25000条1ms-3ms1.7ms-3.5ms100000条5ms-11ms8ms-14ms 2.......
  • 【代码随想录刷题笔记】——数组(持续更新中)
    代码随想录——数组理论基础二分查找704.二分查找-力扣(LeetCode)代码/思路在一个有序数组中通过二分查找解决找到目标值的问题。C++版//版本一:左闭右闭的写法cl......
  • php:输出关联数组特定范围的数据
    php:输出关联数组特定范围的数据    一、php源码(将“关联数组”转化为“索引数组”,然后输出) 1<?php23//definedatastructure4class......
  • 子数组异或和(前缀和、哈希)
    题意给定一个长度为\(n\)的整数数组\(a_1,a_2,\dots,a_n\)。请你统计一共有多少个数组\(a\)的非空连续子数组能够同时满足以下所有条件:该连续子数组的长度为偶数。......
  • 哈希表2:两个数组的交集(349)
    本题如下:(链接:https://leetcode.cn/problems/intersection-of-two-arrays/submissions/)题目:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一......