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

用织梦模板做网站北京关键词优化服务

用织梦模板做网站,北京关键词优化服务,如何做付费阅读网站,wordpress移动端悬浮导航代码力扣刷题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.ds6.com.cn/news/12032.html

相关文章:

  • 做的比较好的旅游网站怎么做网站赚钱
  • 电商会学着做网站呢微信营销的特点
  • 网站html标签如何优化搜索引擎优化英文简称
  • 网站的在线客服怎么做的百度推广客户端app
  • 网站灰色跟淘宝运营团队怎么找
  • 网站设计规划信息技术教案怎么联系百度人工服务
  • 网站建设事宜独立站平台选哪个好
  • 怎样申请网站空间互联网关键词优化
  • 渭南哪家公司可以做网站对网站的建议和优化
  • 怎样用wordpress做网站吉安seo网站快速排名
  • 上海黄页查询win10优化软件
  • 网站建设案例展示360优化大师最新版
  • 办公家具 技术支持 东莞网站建设营销方式方案案例
  • 长沙网站设计公司排名适合seo的建站系统
  • 电子商务网站建设规划方案免费建立网站步骤
  • 网站seo视频小程序开发模板
  • iis ip访问网站百度竞价优化
  • 国外品牌设计网站seo线上培训机构
  • 徐州市丰县建设局网站杭州关键词自动排名
  • 网站做多久才能每日上万2023年九月份新闻
  • 酒店招聘做的好的网站网络服务
  • 珠海编程培训机构百度点击优化
  • 直播网站开发方案ppt视频推广一条多少钱
  • 猪八戒网仿照哪个网站做的网络营销推广的特点
  • 教育行业网站建设小说排行榜2020前十名
  • vs2013如何做网站线下推广都有什么方式
  • 深圳app客户端做网站百度北京分公司官网
  • 聊城网站建设培训班网络怎么推广自己的产品
  • 查网站死链必用工具谷歌搜索引擎优化
  • 个人做网站备案吗seo公司是什么意思