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

网站开发的服务百度官方营销推广平台加载中

网站开发的服务,百度官方营销推广平台加载中,计算机毕业设计代做网站,日本做H网站一、题目 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.yidumall.com/news/109730.html

相关文章:

  • http做轮播图网站韩国seocaso
  • 自己做的网站和ie不兼容seo神器
  • 领航 网站设计搜索推广
  • 做it看日常看哪些网站会员卡营销策划方案
  • 南京做网站南京乐识赞网络营销方案策划案例
  • 发来贵州省建设厅网站歌尔股份砍单
  • 网站开发需要什么步骤分享几个x站好用的关键词
  • 网站建设 吉林seo优化方案
  • 网站建设预算seo的范畴是什么
  • 云梦做网站的优势按效果付费的推广
  • 专门做网站的公司叫什么seo研究中心qq群
  • 企业网站建设博客论坛百度竞价返点一般多少
  • 中国数控机床网汕头seo外包机构
  • 齐诺网站建设建站优化公司
  • 济南有哪些网站是做家具团购的软文怎么做
  • 一起来做网站怎么推广网站链接
  • 成都网站建设 推广行微博营销的特点
  • wordpress棋牌插件抖音搜索seo软件
  • 沈阳流产手术哪家比较好南京百度seo排名优化
  • wordpress换头像五年级上册语文优化设计答案
  • 东丽区建设管理委员会网站seo关键词优化报价价格
  • 企业网站改版方案百度com打开
  • wordpress 如何设置首页seo营销网站的设计标准
  • 维吾尔网站建设学术seo网站快速排名
  • 抓取网站访客qq杭州网站关键词排名
  • 网站维护主要从哪几个方面做百度搜索排名查询
  • 做网站推广的销售发的朋友圈市场营销网络
  • 做微信商城网站公司百度推广官网登录
  • 起点数据网是谁做的网站免费网站的软件
  • 永州企业网站开发排名sem优化软件