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

呼和浩特网站建设费用html编辑器怎么用

呼和浩特网站建设费用,html编辑器怎么用,冀州网站建设代理,wordpress音乐外链LeetCode: 198. 打家劫舍 - 力扣#xff08;LeetCode#xff09; 1.思路 边界思维#xff0c;只有一个元素和两个元素的初始化考虑 当元素数大于3个时#xff0c; 逆向思维#xff0c;是否偷最后一个元素#xff0c;倒序得出递推公式dp[i] Math.max(dp[i - 1], dp[i …LeetCode: 198. 打家劫舍 - 力扣LeetCode 1.思路 边界思维只有一个元素和两个元素的初始化考虑 当元素数大于3个时 逆向思维是否偷最后一个元素倒序得出递推公式dp[i] Math.max(dp[i - 1], dp[i - 2] nums[i]);前者不偷后者偷两者取较大值。 2.代码实现 1// 递推公式逆向思考可以得出2class Solution {3    public int rob(int[] nums) {4        int len  nums.length;5        if (len  0) {6            return 0;7        } else if (len  1) {8            return nums[0];9        } 10 11        int[] dp  new int[len]; 12        dp[0]  nums[0]; 13        dp[1]  Math.max(dp[0], nums[1]); 14 15        for (int i  2; i  len; i) { 16            dp[i]  Math.max(dp[i - 1], dp[i - 2]  nums[i]); 17        } 18        return dp[len - 1]; 19    } 20} 21// 滚动数组有些小坑得踩一下 22class Solution { 23    public int rob(int[] nums) { 24        int len  nums.length; 25 26        if (len  0) { 27            return 0; 28        } else if (len  1) { 29            return nums[0]; 30        } else if (len  2) { 31            return Math.max(nums[0], nums[1]); 32        } 33 34        int[] result  new int[3]; 35        result[0]  nums[0]; 36        result[1]  Math.max(nums[0], nums[1]); 37 38        for (int i  2; i  len; i) { 39            result[2]  Math.max(result[0]  nums[i], result[1]); 40 41            result[0]  result[1]; 42            result[1]  result[2]; 43        } 44        return result[2]; 45    } 46}3.复杂度分析 时间复杂度O(n). 空间复杂度O(1). LeetCode: 213. 打家劫舍 II - 力扣LeetCode 1.思路 考虑首元素和不考虑首元素即可将环形进行拆解为两个线性数组取两者之间的较大值即可 2.代码实现 1class Solution {2    public int rob(int[] nums) {3        if (nums  null || nums.length  0) {4            return 0;5        }67        int len  nums.length;8        if (len  1) {9            return nums[0]; 10        } 11        return Math.max(robAction(nums, 0, len - 1), robAction(nums, 1, len)); 12    } 13 14    int robAction(int[] nums, int start, int end) { 15        int x  0, y  0, z  0; 16        for (int i  start; i  end; i) { 17            y  z; 18            z  Math.max(y, x  nums[i]); // 19            x  y; 20        } 21        return z; 22    } 23}3.复杂度分析 时间复杂度O(n). 空间复杂度O(1). LeetCode: 337. 打家劫舍 III - 力扣LeetCode 1.思路 分两种情况选择根节点和不选根节点分别计算两种情况的较大值并选择两者之间的较大值存入map集合中返回结果。 2.代码实现 1/**2 * Definition for a binary tree node.3 * public class TreeNode {4 *     int val;5 *     TreeNode left;6 *     TreeNode right;7 *     TreeNode() {}8 *     TreeNode(int val) { this.val  val; }9 *     TreeNode(int val, TreeNode left, TreeNode right) { 10 *         this.val  val; 11 *         this.left  left; 12 *         this.right  right; 13 *     } 14 * } 15 */ 16class Solution { 17    public int rob(TreeNode root) { 18        // 创建一个 Map 来保存已经计算过的节点的最大金额 19        MapTreeNode, Integer map  new HashMap();  20        // 调用递归方法计算能够偷取的最大金额 21        return robAction(root, map); 22    } 23    // 构建递归方法计算以 root 为根节点的子树能够偷取的最大金额 24    int robAction(TreeNode root, MapTreeNode, Integer map) { 25        // 如果 root 为空返回 0 26        if (root  null) { 27            return 0; 28        }  29        // 如果map中已经存在以 root 为根节点的子树的最大金额直接返回该值 30        if (map.containsKey(root)) { 31            return map.get(root); 32        } 33        // money 来保存以 root 为根节点的子树能够偷取的最大金额 34        int money  root.val; 35        // 左判断 root 的左子节点是否存在存在则计算左子节点的左子节点和右子节点的最大金额并加到 money 中 36        if (root.left ! null) { 37            money  robAction(root.left.left, map)  robAction(root.left.right, map); 38        } 39        // 右同理 40        if (root.right ! null) { 41            money  robAction(root.right.left, map)  robAction(root.right.right, map); 42        } 43        // 结果从选择根节点和不选择根节点之中选取最大值 44        int res  Math.max(money, robAction(root.left, map)  robAction(root.right, map)); 45        // 将结果res 存入map中以便下次使用 46        map.put(root, res); 47        return res; 48    } 49}3.复杂度分析 时间复杂度O(n). 空间复杂度O(logn).
http://www.tj-hxxt.cn/news/141246.html

相关文章:

  • 销售网站的技巧镇江网友之家手机版
  • 纪检监察工作 网站建设抖音代运营合同范标准版
  • 做服装外单的网站有哪些网站logo代码
  • 珠海门户网站建设山东莱芜金点子信息港
  • 做暧暧视频免费视频中国网站上海网站建设seo1888
  • 自学摄影教程的网站有哪些中国建设银行个人登录
  • 郑州网站建设公司如何公众号开发专业
  • 建立一个网站的流程wordpress图片变小了
  • 怎么做页眉网络优化工程师是干什么的
  • 北京做网站推广多少钱网页制作背景颜色
  • 怎么自己做微网站吗网页设计html代码大全空格
  • 建站专业定制炫酷wordpress主题
  • 网站收录怎么删外贸网站建设价格怎么样
  • 万宁网站建设公司wordpress ping服务列表
  • html5自建网站小程序制作二维码
  • 南宁网站建设索王道下拉wordpress系列教程
  • 国内flask做的网站小程序商城代运营
  • 网站优化新闻kangle搭建wordpress
  • 网站访客代码js多站点cms
  • 网站免费做招生宣传语玉器珠宝做网站
  • 用瀑布流做的美食网站课程网站建设技术
  • 公司做的网站列入什么科目代理游戏
  • 在印度做视频网站阿里云建网站流程
  • 网站首页排名下降域名批量注册查询
  • 重庆网站建设夹夹虫公司.很好开发一款手机app软件需要多少钱
  • 移动终端网站建设新品发布会宣传文案
  • 东莞企业建站程序网站开发与管理心得体会
  • 网站制作台州黄岛建设厅官方网站
  • 网站建设运营执行方案河南网站建设推广运营
  • 网站建设报告书总结wordpress 主题翻译