当前位置: 首页> 房产> 市场 > 深圳招聘网站排名_百度外包公司有哪些_快速建站工具_百度搜索引擎优化指南最新版

深圳招聘网站排名_百度外包公司有哪些_快速建站工具_百度搜索引擎优化指南最新版

时间:2025/9/8 16:26:20来源:https://blog.csdn.net/qq_43920838/article/details/143739035 浏览次数:0次
深圳招聘网站排名_百度外包公司有哪些_快速建站工具_百度搜索引擎优化指南最新版

目录

  • 题目
  • 解法

题目

给定一个非负整数数组 nums 和一个整数 k ,你需要将这个数组分成 k 个非空的连续子数组,使得这 k 个子数组各自和的最大值 最小。

返回分割后最小的和的最大值。

子数组 是数组中连续的部份。

解法

int splitArray(vector<int>& nums, int m) {long l = nums[0], h = 0;//int类型在这里不合适,因为h可能会超过int类型能表示的最大值for (auto i : nums){h += i;l = l > i ? l : i;}while (l<h){long mid = (l + h) / 2;long temp = 0;int cnt = 1;//初始值必须为1for(auto i:nums){temp += i;if(temp>mid){temp = i;++cnt;}}if(cnt>m)l = mid + 1;elseh = mid;}return l;}

在这里插入图片描述
不仅可以查找数组索引,还可以查找和的范围,这就是需要到sum里面去查找,只要这个数在这个范围内,就一定能够查找到。

关键字:深圳招聘网站排名_百度外包公司有哪些_快速建站工具_百度搜索引擎优化指南最新版

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: