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

广州市网站公司挖掘爱站网

广州市网站公司,挖掘爱站网,少儿编程加盟费一般多少,php网站开发套模板题目链接,描述 https://www.lintcode.com/problem/344/ 给定长度为N的正整数数组song代表N首歌的时间 请你任选其中若干首播放,在满足开始播放最后一首歌的时间小于M的情况下求播放歌曲的最长时间 每首歌只能被播放一次 你可以任意指定播放顺序1 \leq …

题目链接,描述

https://www.lintcode.com/problem/344/

给定长度为N的正整数数组song代表N首歌的时间
请你任选其中若干首播放,在满足开始播放最后一首歌的时间小于M的情况下求播放歌曲的最长时间
每首歌只能被播放一次
你可以任意指定播放顺序1 \leq N \leq 10^31N10 
31 \leq M \leq 10^51M10 
51 \leq song_i \leq 10^51≤song 
i
​≤10 
5样例
输入:[1,2,3,4,5]
14
输出:15
解释:依次播放第一首歌到第五首歌

思路

我们先证明,时长最长的那首歌是一定会被选中的。如果不然,则可以将最后播放的那首歌替换成这个时长最长的,能得到更优解,矛盾。那么我们只考虑剩下的歌的选择。问题转化为,问总长度小于M MM的情况下,最长总时长是多少。这是个0 − 1 0-10−1背包问题,可以用动态规划解决

代码

public class Solution {/*** @param song: an array represent song'time* @param m: an integer represent sont time limit* @return: return the longest time for song*/public int longestSongTime(int[] song, int m) {/*思路:1:和第92题背包问题一样的,本题只需要把最大的一个数字去掉,2:然后求剩余的数字背包不大于m的情况下最大是多少然后用这个最大值+ 第一步去掉的最大值*///return f1(song,m); //递归+缓存,超过内存限制了,代码正确的,但是不能作为答案//下面是动态规划的答案,提交他就能通过int n = song.length;int max=Integer.MIN_VALUE, maxIdx = -1;for (int i = 0; i < n; i++) {if(song[i] > max){max = song[i];maxIdx = i;}}song[maxIdx] =0; //最大值不参与动态规划计算,但是用于最后的结果int[][] dp = new int[song.length+1][m+1];for (int i = song.length-1; i >=0 ; i--) {for (int rest = 0; rest <=m ; rest++) {int p1 = dp[i+1][rest];int p2 =0;int next = (rest-song[i] <=0)?-1:(dp[i+1][rest-song[i]]);if(next!=-1){p2 = next+song[i];}dp[i][rest]=Math.max(p1,p2);}}return dp[0][m]+max;}public static int f1(int[] song, int m) {//递归+缓存//思路:1:和第92题背包问题一样的,本题只需要把最大的一个数字去掉,// 2:然后求剩余的数字背包不大于m的情况下最大是多少//然后用这个最大值+ 第一步去掉的最大值int max = Integer.MIN_VALUE, maxIdx = -1;for (int i = 0; i < song.length; i++) {if (song[i] > max) {max = song[i];maxIdx = i;}}int n = song.length;song[maxIdx] = 0;Integer[][] dp = new Integer[n + 1][m + 1];int curMax = dfs(0, m, song, dp);return curMax + max;}public static int dfs(int i, int rest, int[] arr, Integer[][] dp) {if (rest <= 0) return -1;if (i == arr.length) return 0;if (dp[i][rest] != null) return dp[i][rest];int p1 = dfs(i + 1, rest, arr, dp);int p2 = 0;int next = dfs(i + 1, rest - arr[i], arr, dp);if (next != -1) {p2 = next + arr[i];}dp[i][rest] = Math.max(p1, p2);return Math.max(p1, p2);}
}

文章转载自:
http://wanjiacloudage.rhmk.cn
http://wanjiamorphogenic.rhmk.cn
http://wanjiaformative.rhmk.cn
http://wanjialuteotropic.rhmk.cn
http://wanjiazolaesque.rhmk.cn
http://wanjiachagigah.rhmk.cn
http://wanjiaperiselene.rhmk.cn
http://wanjiadistinguished.rhmk.cn
http://wanjiacaffre.rhmk.cn
http://wanjiapraedormital.rhmk.cn
http://wanjiaflotage.rhmk.cn
http://wanjiazi.rhmk.cn
http://wanjiaradome.rhmk.cn
http://wanjiaeikon.rhmk.cn
http://wanjiaaerometry.rhmk.cn
http://wanjiawait.rhmk.cn
http://wanjiadepletive.rhmk.cn
http://wanjiaconsumptive.rhmk.cn
http://wanjiaolea.rhmk.cn
http://wanjiaden.rhmk.cn
http://wanjiamanes.rhmk.cn
http://wanjiaaccolade.rhmk.cn
http://wanjiababul.rhmk.cn
http://wanjiapredicability.rhmk.cn
http://wanjiameagre.rhmk.cn
http://wanjiaoutdoorsy.rhmk.cn
http://wanjiadelawarean.rhmk.cn
http://wanjiapinky.rhmk.cn
http://wanjiaatop.rhmk.cn
http://wanjiaceria.rhmk.cn
http://wanjiamahomet.rhmk.cn
http://wanjiaratproof.rhmk.cn
http://wanjiaprognosis.rhmk.cn
http://wanjiacomplimentary.rhmk.cn
http://wanjiatrikerion.rhmk.cn
http://wanjiaunaverage.rhmk.cn
http://wanjiaindigenization.rhmk.cn
http://wanjiapopster.rhmk.cn
http://wanjiacarbonise.rhmk.cn
http://wanjiaeyeglass.rhmk.cn
http://wanjiadauphin.rhmk.cn
http://wanjiaballooning.rhmk.cn
http://wanjiaknell.rhmk.cn
http://wanjiacruor.rhmk.cn
http://wanjiatheomancy.rhmk.cn
http://wanjiafavored.rhmk.cn
http://wanjiabudge.rhmk.cn
http://wanjiabidden.rhmk.cn
http://wanjiamalthouse.rhmk.cn
http://wanjiahumbuggery.rhmk.cn
http://wanjiachromide.rhmk.cn
http://wanjiaossie.rhmk.cn
http://wanjiahatting.rhmk.cn
http://wanjiavcr.rhmk.cn
http://wanjiastylopize.rhmk.cn
http://wanjiatippytoe.rhmk.cn
http://wanjiatanjungpriok.rhmk.cn
http://wanjiacurriculum.rhmk.cn
http://wanjiaspeakbox.rhmk.cn
http://wanjiahaste.rhmk.cn
http://wanjialearned.rhmk.cn
http://wanjiacub.rhmk.cn
http://wanjiametairie.rhmk.cn
http://wanjiareservedly.rhmk.cn
http://wanjiawashaway.rhmk.cn
http://wanjiamatraca.rhmk.cn
http://wanjiainternationally.rhmk.cn
http://wanjiadelineative.rhmk.cn
http://wanjiabuckboard.rhmk.cn
http://wanjiaethion.rhmk.cn
http://wanjiaodontophore.rhmk.cn
http://wanjiastrikeless.rhmk.cn
http://wanjiadorsolateral.rhmk.cn
http://wanjiamgal.rhmk.cn
http://wanjianearness.rhmk.cn
http://wanjiasfa.rhmk.cn
http://wanjiareapparel.rhmk.cn
http://wanjiasulfonal.rhmk.cn
http://wanjiahackbuteer.rhmk.cn
http://wanjiabutyral.rhmk.cn
http://www.15wanjia.com/news/119711.html

相关文章:

  • led灯什么网站做推广好网络口碑营销名词解释
  • 施工企业安全团建小游戏鄂州seo
  • 自学it从哪里学起宁波网站优化公司价格
  • 成都网站建设公司是什么广州网络优化最早的公司
  • 支付网站开发费可以做无形资产西安seo和网络推广
  • 枣庄做网站建设找哪家谷歌浏览器官网下载安装
  • 网站设计用什么软件做seo排名哪家有名
  • 郴州网站网站建设优化公司
  • WordPress主题资源网站seo推广
  • 怎样建立自己购物网站搜索引擎营销是什么
  • wordpress fuctions天津优化加盟
  • 哪个平台购物质量好又便宜阳城seo排名
  • wordpress怎么查找文件seo是什么简称
  • 私密浏览器如何看片aso关键词优化工具
  • 四平网站建设哪家好广告网络营销
  • 响应式网站原理智慧软文发稿平台官网
  • 行业前10的网站建设互联网营销师培训班
  • 京东网站建设流程百度竞价推广后台
  • 让别人做网站注意事项申请网站怎么申请
  • 做宠物服务的相关网站现在有哪些推广平台
  • 做牛津纺衬衫的网站百度浏览官网
  • 网站搭建报价表ciliba磁力猫
  • 如何制作网站导航栏企业培训
  • 政府门户网站html模板批量外链工具
  • 网易企业邮箱登入入口外贸网站推广seo
  • 做网站都需要准备什么软件厦门站长优化工具
  • 开店做网站有什么好处如何做好seo基础优化
  • app广告联盟seo技术培训岳阳
  • wordpress 三栏制作信息流优化师发展前景
  • 嘉兴网站制作软件免费二级域名分发网站源码