当前位置: 首页 > news >正文

网站开发的服务疫情最新消息今天

网站开发的服务,疫情最新消息今天,wordpress主题 t,北京疫情什么时候结束一、题目 1、题目描述 给定一个非负整数数组 nums 和一个整数 k &#xff0c;你需要将这个数组分成 k 个非空的连续子数组。 设计一个算法使得这 k 个子数组各自和的最大值最小。 2、接口描述 ​ class Solution { public:int splitArray(vector<int>& nums, int …

一、题目

1、题目描述

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

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

2、接口描述

class Solution {
public:int splitArray(vector<int>& nums, int k) {}
};

3、原题链接

410. Split Array Largest Sum


二、解题报告

1、思路分析

看到”最大的最小“自然想到二分

那么关键就在于给定x,如何判断原数组是否能够划分为最大值不超过x的k个子数组

我们贪心地思考,如果原数组能够划分为最大值不超过x的j个子数组,j < k,那么一定也可以通过拆解某些子数组从而得到k个子数组

所以我们的check函数,遍历数组,贪心累加,如果sum > x,我们就cnt + 1,然后sum = x

最终取决于cnt <= k

很经典的二分+贪心的题目

2、复杂度

时间复杂度:O(n) 空间复杂度:O(1)

3、代码详解

 
class Solution {
public:int splitArray(vector<int>& nums, int k) {int r = 0 , l = 0;for(auto x : nums) r += x , l = max(l , x);function<bool(int)> check = [&](int t){int cnt = 1 , s = 0;for(auto x : nums){if(s + x > t)s = x , cnt++;elses += x;}return cnt <= k;};while(l < r){int mid = (l + r) >> 1;if(check(mid)) r = mid;else l = mid + 1;}return r;}
};

http://www.wangmingla.cn/news/19371.html

相关文章:

  • 天津网站建设定做原创软文
  • 青岛做网站哪家好推广目标怎么写
  • 营销型网站建设是什么意思深圳百度
  • 南宁手机建站模板补肾壮阳吃什么药效果好
  • 做货代的要注册哪种物流网站优化是什么意思?
  • 哈工大 网站开发网络平台推广运营有哪些平台
  • 找生产厂家的网站百度竞价怎么收费
  • 做商品网站数据库有哪些网站seo在线诊断
  • 怎么做网站的排名优化服务营销论文
  • 好知网做网站网络营销推广方式包括哪些
  • 网站开发学什么 2018搜索优化师
  • 成都市网站设计开发免费注册推广网站
  • 西峡网站开发长尾关键词有哪些
  • 莱芜网站建设自助建站优化软文技巧
  • 做招商加盟做得比较好的网站seo是指什么职位
  • 新手用什么框架做网站比较好百度知道官网手机版
  • 重庆营销网站制作人员优化是什么意思
  • 网站建设当前位置图标企业网站推广优化
  • 人力资源公司网站建设方案合肥百度网站排名优化
  • 河间申梦网站建设制作seo优化网页
  • 网站投放广告教程seoul是哪个城市
  • 外包加工活沈阳高端关键词优化
  • 国外设计网站h开头北京seo优化排名推广
  • 长安网站制作公司微信营销技巧
  • php网站跟随导航网络营销推广公司网站
  • 做网站需要找什么客户百度推广手机客户端
  • 河南论坛网站建设深圳做网站seo
  • 辽宁响应式网站建设宁波seo网络优化公司
  • 代做网站跳转网站快速上排名方法
  • 医疗网站建设好么网络推广营销网