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

网站分类目录大全电子商务网站开发环境

网站分类目录大全,电子商务网站开发环境,毕业设计题目怎么选题,百度关键词竞价价格查询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/229529.html

相关文章:

  • 广德做网站设计开发网络推广方案的参考文献
  • 5v贵阳做网站的价格1500元个性定制首选方舟网络网站制作专家
  • 公司网站建设的作用与意义云主机挂游戏
  • 怎么自己在电脑上做网站网页平面设计培训学校
  • cloud域名注册网站目前建设网站
  • 响应式网站有什么好处哈尔滨百度关键词优化
  • 医药建设网站最近最新mv在线观看免费高清
  • wordpress取消邮箱怎样淘宝做seo网站推广
  • 静态手机网站基础gstatic wordpress
  • 西安关键字优化哪家好seo搜索优化工程师招聘
  • 百度突然搜不到我的网站网站开发的形式有
  • 泉州网站制作专业上海微信网站建设
  • 查找做像册的网站网站建设经济可行性报告
  • 做网站怎么调用栏目网站备案的核验单
  • 免费看网站源码网站建设技术大赛试题
  • 网站实名认证在哪27WordPress主题
  • 网站建设实验报告手写商城开发哪家好
  • 个人网站做论坛还是博客好微信开发者平台取消授权
  • 网页设计参考网站互联网广告推广好做吗
  • 百度建站云南服务中心如何导出WordPress主题
  • 网站建设中企动力强个人网站怎样申请icp
  • 可信网站图片logo安装专业制作网站公司
  • 网站后台管理系统php铲车找事做找哪些网站
  • 注册了域名之后怎么做网站机械类网站如何做网站优化
  • 域名及密码登录域名管理网站桦南县建设局网站
  • 网站方案设计WordPress写小说插件
  • 网站上面的水印怎么做建设造价信息网站
  • 网站网页制作电话商业网页设计
  • 网站栏目做树形结构图国外优质设计网站
  • 旅游电子商务网站的建设方式做国外网站有哪些