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

LeetCode 解题思路 42(Hot 100)

在这里插入图片描述

解题思路:

  1. dp 数组的含义: 考虑下标 i,能偷的最大金额 dp[i]。
  2. 递推公式: dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i])。
  3. dp 数组初始化: dp[0] = nums[0],dp[1] = Math.max(nums[0], nums[1])。
  4. 遍历顺序: 从 i = 2 开始,直到 i = nums.length - 1。
  5. 打印 dp 数组

Java代码:

class Solution {public int rob(int[] nums) {if (nums.length == 1) return nums[0];if (nums.length == 2) return Math.max(nums[0], nums[1]);int[] dp = new int[nums.length];dp[0] = nums[0];dp[1] = Math.max(nums[0], nums[1]);for (int i = 2; i < nums.length; i++)dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i]);return dp[nums.length - 1];}
}

复杂度分析:

  • 时间复杂度: O(n),其中 n 是房屋数量。只需遍历一次数组。
  • 空间复杂度: O(1),仅使用常数级别的额外空间。
    在这里插入图片描述

解题思路:

  1. dp 数组的含义: 装满容量为 i 的背包,最少的物品个数为 dp[i]
  2. 递推公式: dp[i] = Math.min(dp[i], dp[i - coin] + 1)。
  3. dp 数组初始化: dp[0] = 0,dp[i] = amount + 1。
  4. 遍历顺序: 与排列组合无关,从 i = 1 开始,直到 i = amount。
  5. 打印 dp 数组

Java代码:

class Solution {public int coinChange(int[] coins, int amount) {int[] dp = new int[amount + 1];Arrays.fill(dp, amount + 1);dp[0] = 0;for (int i = 1; i <= amount; i++) {for (int coin : coins) {if (i >= coin) {dp[i] = Math.min(dp[i], dp[i - coin] + 1);}}}return dp[amount] > amount ? -1 : dp[amount];}
}

复杂度分析:

  • 时间复杂度: O(amount × coins.length),遍历所有金额和硬币组合。
  • 空间复杂度: O(amount),仅需一维数组存储状态。

相关文章:

  • JMeter实现UI自动化测试的完整方案
  • stack,queue和priority_queue
  • Java @Serial 注解深度解析
  • MATLAB 控制系统设计与仿真 - 39
  • JDBC 数据库连接全解析:从驱动配置到工具类封装
  • 《JVM考古现场(二十三):归零者·重启奇点的终极奥义》
  • 若依(笔记)
  • React-请勿在循环或者条件语句中使用hooks
  • 触发器(详解)
  • LNA设计
  • linux学习 5 正则表达式及通配符
  • .net core web api 数据验证(DataAnnotations)
  • Python concurrent包介绍
  • 19-算法打卡-哈希表-四数相加II-leetcode(454)-第十九天
  • leetcode哈希表(六)-三数相加
  • C++ 数学算法全解析(二):解方程与三角函数实用指南
  • deekseak 本地windows 10 部署步骤
  • 网络编程 - 4 ( TCP )
  • RoBoflow数据集的介绍
  • 对美团leaf的初步学习
  • 国际金价冲上3500美元,本月已涨超12%!分析人士提醒:警惕短期多头获利了结
  • 针对“二选一”,美团再次辟谣
  • A股低开高走,震荡收涨:两市成交10414亿元,4360股收涨
  • 长三角主流媒体将走进“来电”宜昌,探寻高质量发展密码
  • “云南舞蹈大家跳”暨牟定“三月会”下周举行,城际公交免票
  • 城事|2小时40分42秒,天工夺冠!全球首个人形机器人半马开跑