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

做网站用什么版本系统郑州做网站哪家好

做网站用什么版本系统,郑州做网站哪家好,怎样自己做刷赞网站,关于加强政府网站建设的通知题目: 给你一个整数数组 arr,请你将该数组分隔为长度 最多 为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。 返回将数组分隔变换后能够得到的元素最大和。本题所用到的测试…

题目:
给你一个整数数组 arr,请你将该数组分隔为长度 最多 为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。

返回将数组分隔变换后能够得到的元素最大和。本题所用到的测试用例会确保答案是一个 32 位整数。

示例 1:

输入:arr = [1,15,7,9,2,5,10], k = 3
输出:84
解释:数组变为 [15,15,15,9,10,10,10]
示例 2:

输入:arr = [1,4,1,5,7,3,6,1,9,9,3], k = 4
输出:83
示例 3:

输入:arr = [1], k = 1
输出:1

提示:

1 <= arr.length <= 500
0 <= arr[i] <= 109
1 <= k <= arr.length

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/partition-array-for-maximum-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

首先要看样例来寻找灵感。

在推完前两个样例的时候,应该就会发现规律。当你从前往后开始进行的时候,每到一个位置都要进行判断,是不是要以当前位置为核心开始赋值,如果是最大值要向周围进行赋值的话,是先前还是先后,分别向前多少向后多少,这些都是你要考虑的。

就以第二个例子为例,i 从0到n-1开始进行判断:
i =0的时候那肯定是1 ;、
i =1的时候,发现4是向前k个数里最大的,因此此时的最大值是4 , 整体的和就是8 ;
i = 2的时候,发现k 个数内还是4是最大值,因此整体的和就是12 ;
i = 3 的时候,发现 k 个数内最大值是5 , 因此整体的和就是20;
i = 4 的时候,发现 k 个数内最大值是7 , 但是k=4,所以最多只能向前赋值4个数,和就是29;

好的,推到这里,应该就有感觉了吧?

没有!?那我让你有点感觉~

你会发现,i 从前向后走的时候,每走到一个新的值,那以i 结尾的整体的和的最大值其实就是可以得到的,也就是说当前位置的最终答案是可以根据之前得到的结果计算得到,都说到这了还没有感觉么?

这不就是状态转移方程嘛!这不就是DP的感觉嘛!

用dp【i】 来表示以 i 作为结尾元素的整体的最大和,最后的答案就是dp【n-1】。

那状态转移方程就可以是:
dp【i】 = max(dp【i】,( j >0 ? dp[j-1] : 0) + res*(i-j+1))

j 的含义是从 i 开始向前枚举 k 个位置 , 以为之前的每个位置的整体最大和是已经算过的,也就是dp【0】到dp【i-1】都是计算过的,那 j 从 i 开始向前枚举,用arr【j】来更新 j 到 i 内的最大值res,然后将res赋值到 j 到 i 的所有数,dp【i】就取赋值之前和赋值之后的较大值。

通过这样的状态转移方程,i 从 0 遍历到 n-1 , 最终的dp【n-1】就是要返回的答案!

代码:

class Solution {
public:int maxSumAfterPartitioning(vector<int>& arr, int k) {int n = arr.size();int dp[510] = {0};for(int i = 0 ; i < n ; i++){int res = arr[i];for(int j = i ; j >= max(i-k+1 , 0) ; j--){res = max(res , arr[j]);dp[i] = max(dp[i] , (j > 0 ? dp[j-1] : 0) + res*(i-j+1));// cout << i << " " << j << " " << res <<  endl;// cout << dp[i] << endl;}}return dp[n-1];}
};
http://www.hkea.cn/news/26825/

相关文章:

  • 网站首页滚动图片怎么做谷歌搜索关键词排名
  • 嵩县网站开发友情链接获取的途径有哪些
  • 国家企业信息公示网(广东)海南快速seo排名优化
  • 高端网站设计 上海徐州seo排名公司
  • 泰安网站建设公司排名石家庄最新消息
  • 域名只做邮箱没网站要备案吗常见的网络推广方式包括
  • 昆山建设局网站360搜索首页
  • 正常做网站多少钱无锡网站制作无锡做网站
  • php做网站csdn网站seo公司哪家好
  • 今日头条建站工具何鹏seo
  • wordpress 培训模板优化落实疫情防控新十条
  • 关于做外汇现货的网站太原整站优化排名外包
  • 星悦做任务网站是新网站百度收录
  • 十大营销网站seo关键词查询工具
  • 怎么查询网站所有关键词靠谱的广告联盟
  • 超酷的网站设计磁力搜索引擎
  • 网站建设写程序用什么软件成都疫情最新消息
  • 做网站需要什么资金2022今天刚刚发生地震了
  • 建设网站费用主要包括哪些google商店
  • 专注邯郸建设手机网站贴吧友情链接在哪
  • 网站备案拍照背景志鸿优化网官网
  • 网站百度知道怎么做推广网站搜索引擎优化的方法
  • 网站建设注意哪些问题sem和seo是什么职业岗位
  • 一_建设网站前的市场分析奶茶软文案例300字
  • 做网站智能工具江阴企业网站制作
  • 怎么看网站有没有做推广大数据营销系统多少钱
  • 广东工厂搜索seoseo平台优化服务
  • 网站开发平台 eclipseseo网站推广案例
  • 什么网站做调查能赚钱关键词优化报价推荐
  • 网站开发职业认知小结开发一个app平台大概需要多少钱?