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

网站建设项目网络图python基础教程电子书

网站建设项目网络图,python基础教程电子书,商务网站建设综合实训,opensuse wordpress打家劫舍和背包问题一样是一道非常经典的动态规划问题,只要做过几道动态规划的题,这道题简直就非常容易做出来。我应该花了10来分钟左右就写出来了,动态规划问题最重要的就是建立状态转移方程,就是说如何从上一个状态转移到下一个…

 打家劫舍和背包问题一样是一道非常经典的动态规划问题,只要做过几道动态规划的题,这道题简直就非常容易做出来。我应该花了10来分钟左右就写出来了,动态规划问题最重要的就是建立状态转移方程,就是说如何从上一个状态转移到下一个状态的。直观的说就是dp[i]是怎么来的,是通过dp[i-1]来的还是通过dp[i-2]来的等等,如果知道初始状态和状态转移方程,那么每个状态都可以算出来,以下是我的代码:

class Solution {public int rob(int[] nums) {int n = nums.length;int[][] dp = new int[n][2];dp[0][0] = 0;dp[0][1] = nums[0];int max = Math.max(dp[0][0], dp[0][1]);for(int i=1;i<n;i++){dp[i][0] = max;dp[i][1] = dp[i-1][0]+nums[i];max = Math.max(dp[i][0], dp[i][1]);}return max;}
}

 数组大小是n,我建立一个int[n][2]的dp数组,其中dp[i][0]表示不偷第i家能获得的最大的价值,dp[i][1]表示偷第i家能获得的最大的价值。max表是dp[i][0]和dp[i][1]中的最大值,表示偷到第i家能获得的最大价值(因为是从第0家偷到第n-1家的)。

初始状态:dp[0][0]=0; 表示不偷第0家,dp[0][1]=nums[0];表示偷第0家。

状态转移方程:dp[i][0] = max;这个max是dp[i-1]的最大值,就是说如果我不偷第i家,那么第i-1家偷不偷都可以,所以不偷第i家的最大值就是第i-1家的最大值,与偷不偷i-1无关。

dp[i][1] = dp[i-1][0]+nums[i];偷第i家的最大值就是不偷第i-1家的最大值dp[i-1][0]+第i家的价值nums[i];

最后只要返回dp[n-1][0]和dp[n-1][1]中的最大值即可,而max正好是两者中的最大值,所以只要返回max即可。

动态规划问题都是这个套路,找到状态转移方程,通过初始状态算出每个状态,返回最后那个状态或者返回所有状态中的最值。

看看题解有没有新颖的解法。

题解的思路确实更清晰,他dp数组是一维的,没有分什么偷和不偷,dp[i]就表示在第i家的最大价值也就是max,那么状态转移方程就是:dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1]);dp[i-2]+nums[i]表示偷第i家,那么就是在第i-2家的最大值家上nums[i];dp[i-1]就是不偷第i家,那么就是第i-1家的最大值。dp[i]取两者中的最大值即可。

class Solution {public int rob(int[] nums) {if (nums == null || nums.length == 0) {return 0;}int length = nums.length;if (length == 1) {return nums[0];}int[] dp = new int[length];dp[0] = nums[0];dp[1] = Math.max(nums[0], nums[1]);for (int i = 2; i < length; i++) {dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1]);}return dp[length - 1];}
}

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

相关文章:

  • 企业网站开发标准wordpress文章存在哪里
  • 建设银行内部网站制作网页设计软件列表代码
  • 国外不织布网站做的教具专业网站优化外包
  • 分类网站 制作提供网站建设排行榜
  • 中文wordpress网站照明公司网站制作
  • 网页设计html代码大全桂林如何诊断网站seo
  • 交互网站模板app市场调研报告
  • 广东网站推广学习软件的网站
  • 营销型网站定做网站白名单是什么意思
  • 福田网站建设有什么免费开发网站建设软件有哪些
  • wordpress看图插件王通seo赚钱培训
  • 网站群建设方案6付网站建设费用 会计科目
  • 巴中城乡建设官方网站韩语网站建设
  • 网站建设好公司奉化网站建设
  • 做net网站网站建设的一般过程
  • 网站分为哪些部分移动端显卡天梯图2024
  • 网站建设管理标准阿里云买了域名怎么建网站
  • 合肥高新城建设计院网站邢台网约车
  • 哪里有做枪网站的seo网络推广费用
  • 电子政务网站系统小程序开发平台打不了字
  • 重庆 网站开发网站建设论文的前言
  • 电商网站的建设长春火车站高清图片
  • 临沂市建设官方网站seo 成功网站
  • 工会网站建设方案毕节网站网站建设
  • 有什么网站可以做微信支付宝支付宝图片设计制作
  • 怀远县建设局门户网站网站 建站模式
  • 江诗丹顿手表网站酒店网站设计的目的和意义
  • 做爰午夜福利全过程视频网站网站建设认证试题
  • 门户移动网站建设2345网址大全电脑版
  • 如何进行网站设计360优化大师app下载