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

建设政府网站多语种版本的意义天津优化公司

建设政府网站多语种版本的意义,天津优化公司,科技公司网站建设,室内设计网站平台198. 打家劫舍 🔗:198. 打家劫舍 - 力扣(LeetCode)思路:比较简单的动态规划。 一开始没考虑到【2,1,1,2】这种情况应该怎么处理,对于amount[1]的初始化有些问题 代码&am…

198. 打家劫舍

  • 🔗:198. 打家劫舍 - 力扣(LeetCode)
  • 思路:比较简单的动态规划。
    • 一开始没考虑到【2,1,1,2】这种情况应该怎么处理,对于amount[1]的初始化有些问题
  • 代码:
class Solution {public int rob(int[] nums) {//if(nums.length==1) return nums[0]; int[] amount = new int[nums.length];amount[0] = nums[0];// 初始化 amount【1】出错amount[1] = Math.max(nums[0],nums[1]);for(int i=2; i<nums.length; i++){amount[i] = Math.max(amount[i-2]+nums[i],amount[i-1]);}return amount[nums.length-1];}
}

213.打家劫舍II

  • 🔗:213. 打家劫舍 II - 力扣(LeetCode)
  • 思路:
    • 分类讨论,一开始想到了考虑打劫第一个和不打劫第一个需要分开来考虑。但是始终想把他们俩合并到一起考虑,没有想到办法,最后发现实际上官方题解就是用分类的方式。
    • 写的没有官方题解简洁,可以抽象成同一个方法来调用。
  • 代码:
class Solution {public int rob(int[] nums) {int[] amount = new int[nums.length];// 长度为1、2的情况amount[0] = nums[0];if(nums.length==1) return amount[0];amount[1] = Math.max(nums[0],nums[1]);if(nums.length==2) return amount[1];// case1:打劫第一间房for(int i=2; i<nums.length-1; i++){amount[i] = Math.max(nums[i]+amount[i-2],amount[i-1]);}//1+3=4int case1amount = amount[nums.length-2];// case2: 不打劫第一间房amount[1] = nums[1];amount[2] = Math.max(nums[1],nums[2]);for(int i=3; i<nums.length; i++){amount[i] = Math.max(nums[i]+amount[i-2],amount[i-1]);}int case2amount = amount[nums.length-1];return Math.max(case1amount,case2amount);} 
}

337.打家劫舍III

  • 🔗:337. 打家劫舍 III - 力扣(LeetCode)
  • 思路:
    • 非常巧妙的思路。一开始自己写的没有通过第60个用例,没有考虑到【2,1,1,2】这种情况,反了和今日第一题一样的问题,后来照着官方题解的写了一下。
    • 节点可以有两个状态:selected & not selected
      • select:则左右子节点均不能被选择
      • not selected:左右子节点可以被选择,也可以不被选择
  • 代码:
class Solution {public int rob(TreeNode root) {int[] rootStatus = traverse(root);return Math.max(rootStatus[0], rootStatus[1]);}public int[] traverse(TreeNode root){if(root==null)return new int[]{0,0};int[] l = traverse(root.left);int[] r = traverse(root.right);// 当node被选中时,left和right一定不被选中// 所以selected = node的值+left&right不被选中的值int selected = root.val + l[1]+r[1];// 当node不被选中时,left和right可以被选中,也可以不被选中// 因此选取他们的最大值int notSelected = Math.max(l[0],l[1])+Math.max(r[0],r[1]);return new int[]{selected,notSelected};}
}

http://www.dtcms.com/wzjs/39339.html

相关文章:

  • 中国建设部网站四库平台谷歌sem
  • 实搜网站建设网站如何推广
  • 信誉好的做网站公司sem竞价培训
  • 做网站所用的工具湛江seo
  • 切图做网站如何做小学培训机构
  • 做网站去哪里可以找高清的图片项目推广
  • 网站建设宽度一般都是多少钱东莞建设企业网站公司
  • 重庆好的网站制作公司哪家好广州推广引流公司
  • php网站开发怎么样小程序开发模板
  • wordpress升级php版本seo分析工具有哪些
  • 做钢管网站外贸推广是做什么的
  • 什么网站可以自己做房子设计搜索引擎优化排名优化培训
  • 手机版刷赞网站建设郑州网站优化公司
  • 网站开发经济可行性分析app拉新项目一手渠道商
  • 济南wordpress 建站简述什么是seo及seo的作用
  • 石家庄网站建设推广电话百度问答兼职怎么做
  • 越南网站怎么做中国大数据平台官网
  • 织梦网站图片不显示南宁seo优化公司排名
  • 河南网站建设怎么收费怎样做关键词排名优化
  • 2018年网站建设2021友情链接qq群
  • 做窗帘网站图片大全怎么在百度发布信息
  • 用tomcat做网站win7系统优化工具
  • 网络推广网站建设网站建设流程
  • 常熟网站建设seo知识分享
  • 福建市人民政府疫情南京百度关键字优化价格
  • php彩票网站开发好用的种子搜索引擎
  • 长沙本土网站建设公司小红书seo排名优化
  • 做效果图挣钱网站福清seo
  • 网页设计师工资一般多少钱网站seo优化免费
  • 怎么利用招聘网站做薪酬调查大数据精准营销获客