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

北京网站设计入门京津冀协同发展河北定位

北京网站设计入门,京津冀协同发展河北定位,php网站开发范例,做门户网站 cms力扣刷题记录 dp 回溯 3180. 执行操作可获得的最大总奖励 I 思路 和往常一样,先使用暴力求解,想到了回溯算法,选择了当前数字,就跳到下一个数字,形成一个树形结构来遍历所有结果集合,但是没有找到优化算…

力扣刷题记录

dp 回溯

3180. 执行操作可获得的最大总奖励 I

思路

和往常一样,先使用暴力求解,想到了回溯算法,选择了当前数字,就跳到下一个数字,形成一个树形结构来遍历所有结果集合,但是没有找到优化算法,时间复杂度比较高
在这里插入图片描述
但是也可以通过90%的测试用例

没办法,只能思考动态规划的问题,没有想出来,查看题解
首先对数组进行排序
定义动态数组 dp[2 * max] , max表示最大的奖励数字
dp数组记录值为0或1,表示该下标的值是否能够被取到

最大的奖励数不可能超过2 * max,因此遍历奖励数组,当前值为x时,倒序k遍历 2 * x - 1到x,判断dp[k - x]是否可以取到,如果可以取到,那么dp[k]也可以达到,标记为1

最后遍历dp数组找到最大值即可

代码

var res int = 0func backTracking(rewardValues []int, curReward int, pos int){if curReward > res{res = curReward}if pos >= len(rewardValues){return}for i := pos; i < len(rewardValues); i++{if curReward < rewardValues[i]{curReward += rewardValues[i]backTracking(rewardValues, curReward, i + 1)curReward -= rewardValues[i]}}
}func maxTotalReward(rewardValues []int) int {sort.Ints(rewardValues)// res = 0// backTracking(rewardValues, 0, 0)max := rewardValues[len(rewardValues) - 1]dp := make([]int, 2 * max)dp[0] = 1for _, x := range rewardValues{for k := 2 * x - 1 ; k >= x ; k --{// k 表示能到达的最大总奖励if dp[k-x] == 1{dp[k] = 1}}}for i, val := range dp{if val == 1{res = i}}return res
}

不考虑排序算法的情况下
时间复杂度:O(n*max)
空间复杂度:O(max)

http://www.yayakq.cn/news/744512/

相关文章:

  • c 网站开发 书网站建设误期违约金赔偿限额
  • 中国建筑工程网校东莞seo网站排名优化公司
  • 微信小程序怎么做网站做淘宝首页初学ps视频网站
  • 企业网站建设调查问卷企业信用信息查询公示系统官网
  • 小伙做网站网上下的网站模版后门
  • 自助建站免费平台苏州厂房装修
  • 长春做网站好的公司常州企业名录黄页
  • 万云网络网站信阳优化公司
  • 查询网站收录命令大学网站建设说明书
  • 淮安做网站的有多少农特产品网站建设合同模板
  • 网站如何建设移动端非你莫属做网站的卖网币起家的
  • 邯郸网站制作厂家网络科技扣钱是咋回事
  • 网站运营职业分析专门做超市dm网站
  • 那个网站适合学生做兼职江阴企业网站建设
  • 菏泽企业网站建设网站建设中html页面
  • 做羞羞的事的视频网站微信服务商平台官网
  • 网站后台添加不了图片常见的企业网站有哪些
  • 手机网站建设要多少钱新昌品牌网站建设
  • 合肥建筑网站上海设计网站开发
  • 网站关键词google优化怎么做单页产品销售网站如何做推广
  • 有什么网站开发软件网站建设建站网
  • 网站seo优化技能网站建设与网站开发
  • 宿迁网站建设公司排名在线阅读网站建设方案
  • 一键建站模板企业网盘服务案例
  • 网站里自己怎么做推广WordPress小程序小白教程
  • 做设计不能不知道的网站福建远方建设有限公司网站
  • 宁阳移动网站制作山东德州网站建设哪家最好
  • 帝国cms获取网站地址做高端企业网站
  • 简单aspx网站开发十堰网站建设是什么
  • html5网站有点广西建设教育网官网