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

杭州企业网站开发网站推广平台搭建

杭州企业网站开发,网站推广平台搭建,网站备案号被注销,seo关键词排名技术一、题目 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.khdw.cn/news/65260.html

相关文章:

  • 泰安网站建设推广北京排名seo
  • 自己做网站怎么能被访问网站宣传方式有哪些
  • 淘宝网站的建设目标是手机百度电脑版入口
  • 广州比较好的网站建设企业手游推广平台代理
  • 上海专业建站最低价发稿软文公司
  • 万网建设网站教程seo怎么做优化
  • 天津做网站得公司互联网营销师是哪个部门发证
  • 广州微信网站建设公司seo优化的优点
  • 嘉兴高端网站定制seo优化网站百度技术
  • 南通网站优化找哪家百度资源
  • 做腰椎核磁证网站是 收 七深圳网络推广培训中心
  • 大网站建设规范企业网络营销策略分析案例
  • 没有静态ip可以做网站服务器全自动推广引流软件
  • 移动web网站开发seo网络推广有哪些
  • 做网站采集深圳网站建设找哪家公司好
  • 教育部学校规划建设发展中心官方网站seo综合查询系统
  • 迈肯奇迹做网站nba最新交易汇总实时更新
  • 万网做网站多少钱新产品怎样推广
  • 关于征求网站建设的通知在哪里查关键词排名
  • 网站开发工程师 课程大纲网盘资源搜索神器
  • 手机网站制作推广网络营销与直播电商专业介绍
  • 牡丹江商城网站建设佛山做网络优化的公司
  • b2c中日外贸有哪些网站做的好全球搜索引擎大全
  • asp网站上一篇下一篇代码网店运营培训
  • 秦皇岛网站设计网站营销方案
  • miniui做的网站网站模板建站公司
  • 小公司企业简介300字开封网站seo
  • wordpress 短链插件深圳网站优化公司
  • 北京网站建设公司分形科技营销策划公司
  • 如何设计网站中的上传功能性能优化大师