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

用织梦模板做网站杭州网络优化公司排名

用织梦模板做网站,杭州网络优化公司排名,wordpress信息,免费wap网站建设力扣刷题11——打家劫舍1和2——[线性动态规划] 一、博客声明二、题目描述三、解题思路1、线性动态规划 a、什么是动态规划 2、思路说明 四、解题代码(附注释) 一、博客声明 找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解…

力扣刷题11——打家劫舍1和2——[线性动态规划]

  • 一、博客声明
  • 二、题目描述
  • 三、解题思路
    • 1、线性动态规划
      •  a、什么是动态规划
    • 2、思路说明
  • 四、解题代码(附注释)

一、博客声明

  找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解题思路,开辟这个系列来记录。代码可能不是自己写的,不求方法最好,只求更多地理解大佬们的解题思路。


二、题目描述

  你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

示例 1

输入:[1,2,3,1]
输出:4
解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。

示例 2

输入:[2,7,9,3,1]
输出:12
解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。偷窃到的最高金额 = 2 + 9 + 1 = 12 。

提示

1 <= nums.length <= 100
0 <= nums[i] <= 400

三、解题思路

1、线性动态规划

 a、什么是动态规划

  动态规划不是一种算法,而是一种思想和解题策略。而要掌握动态规划比较难,小编还没有掌握,还在努力算题中。也不知道该怎么解释。推荐大家去看下面的视频:
  视频1:【动态规划】这可能是最好懂的动态规划入门教程
  视频2:动态规划入门50题

2、思路说明

  换种理解方式,如果有A,B,C,D四个区域,如何保证我穿过四个区域走的路程最长?是不是就是只要保证每个区域都走最长的路,就可以保证四个区域后,我走的路程最长。
  那么打家劫舍这个题目,换个思想,只要保证我到第i家时,不管偷还是不偷,手里积累的钱是两种策略(偷和不偷)中最多的就可以了。如果偷的话,钱就变为偷到前前一家积累的钱加上这家的钱,不偷的话就是偷到前一家积累的钱。比较这两个谁大就可以了。然后就是保存好偷到第i-2家和偷到第i-1家积累的钱,方便对下一家是否偷作为判断依据。
  1、如果数组长度等于1,返回nums[0]
  2、如果数组长度等于2,返回fmax(nums[0], nums[1])
  3、如果数组长度大于2,就需要从第三房子开始判断,偷还是不偷这两种选择,哪种选择能让当前手中积累的钱更多;

在这里插入图片描述

  打家劫舍2只需要考虑偷盗的范围就可以了,代码最后一行变为return fmax(stealRang(nums, 0, numsSize - 2), stealRang(nums, 1, numsSize - 1));。也就是考虑第一家偷的话,最后一家就不能偷,范围就变为从第0家偷到numsSize-2家;如果不偷第一家,范围就变成了从第1家偷到第numsSize-1家;比较这两个谁大就可以了。
 


四、解题代码(附注释)

///偷窃范围,从第start家到第end家。
int stealRang(int* nums, int start, int end){int first = nums[start], second = fmax(first, nums[start+1]);for(int i = start + 2; i <=end; i++){int temp = second;//考虑第i家,偷与不偷,哪个得的钱更多,不偷就还是原来的second值,偷就是前一家+该家金额second = fmax(second, first + nums[i]);first = temp;}return second;
}//该题目为属于线性动态规划题目
int rob(int* nums, int numsSize) {if(numsSize <= 1){//长度为1,返回第一个元素return nums[0];}if(numsSize == 2){//长度为2,返回两个元素中最大的return fmax(nums[0], nums[1]);}return stealRang(nums, 0, numsSize - 1);//返回最大值//return fmax(stealRang(nums, 0, numsSize - 2), stealRang(nums, 1, numsSize - 1)); //打家劫舍2返回这个
}
http://www.tj-hxxt.cn/news/54232.html

相关文章:

  • 上不了国外网站怎么做外贸十大网站管理系统
  • 南宁市网站开发建设seo排名优化软件免费
  • wordpress 菜单平铺深圳专业seo外包
  • 建设局网站查询个人信息360摄像头海澳門地区限制解除
  • 网络营销专员是干嘛的seo一般包括哪些内容
  • 做图片网站用什么程序关键词的作用
  • go语言做的网站广东seo快速排名
  • wordpress 文章的各种调用seo优化教程视频
  • 闵行营销型网站建设公司百度关键词搜索指数查询
  • 网站建设要写代码吗门户网站
  • 网站建设价值合肥关键词排名推广
  • 基于php房产网站开发四川游戏seo整站优化
  • 垦利县建设局网站搜索 引擎优化
  • 广西远伟网络科技有限公司seo的基础是什么
  • 做哪种网站流量上的快石家庄
  • 网站解除域名绑定seo优化靠谱吗
  • 1688外贸平台seo排名优化推广
  • 大连网站制作的公司哪家好网站优化提升排名
  • 网站哪里可以查到做ddos搭建网站多少钱
  • 做ebay需要的图片外链网站上海培训机构排名榜
  • 网络营销推广的核心是什么百色seo外包
  • 网站建设总结ppt软文营销写作技巧有哪些?
  • 中国机械加工网1717崇左seo
  • 互联网保险业务是指seo关键词排名技巧
  • 解释网站为什么这样做seo测试工具
  • 做电影网站都需要什么手续产品推广方式及推广计划
  • 岳阳网站开发公司推荐世界十大网站排名出炉
  • iis7.5怎么做网站推广app网站
  • 网站建设专题windows10优化工具
  • 动态网站开发 pdf免费seo营销软件