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

代码随想录算法营Day42 | 322. 零钱兑换,279. 完全平方数,139. 单词拆分

322. 零钱兑换

这道题先遍历物品也就是每个不同的硬币,然后遍历该硬币面值到目标值的dp数组,状态转移公式为dp[i] = min(dp[i],dp[i-coin]+1)

class Solution:
    def coinChange(self, coins: List[int], amount: int) -> int:
        dp = [float('inf')] * (amount + 1)
        dp[0] = 0
        for coin in coins:
            for i in range(coin,len(dp)):
                if dp[i-coin] != float('inf'):
                    dp[i] = min(dp[i],dp[i-coin]+1)
        return dp[amount] if dp[amount] != float('inf') else -1

279. 完全平方数

这个背包的大小就是这个目标数,而物品则是每个小于等于该数平方根的所有数。

class Solution:
    def numSquares(self, n: int) -> int:
        dp = [0] * (n + 1)
        for i in range(1,n+1):
            minn = float('inf')
            for j in range(1,int(i**0.5)+1):
                minn = min(minn,dp[i-j*j])
            dp[i] = minn + 1
        return dp[n]

139. 单词拆分

class Solution:
    def wordBreak(self, s: str, wordDict: List[str]) -> bool:
        wordDictSet = set(wordDict)
        dp = [False] * (len(s) + 1)
        dp[0] = True
        for i in range(1,len(s)+1):
            for j in range(i):
                if dp[j] and s[j:i] in wordDictSet:
                    dp[i] = True
                    break
        return dp[len(s)]

相关文章:

  • STM32 定时器产生定周期方法
  • 上位机知识篇---与、或、移位操作(、|、>><<)
  • AOSP Android14 部分页面使用触摸会崩溃
  • 视频转序列帧
  • 巧用 PasteMate,联合 DeepSeek 与 LaTeX 高效生成 PDF 文档
  • ERP对制造业务有何价值?
  • Ubuntu18.04安装rvm、ruby2.6.5和rails5.2.6
  • eBPF驱动的实时内核安全防护体系:构建零日漏洞免疫的云原生基础设施
  • 深度学习笔记之自然语言处理(NLP)
  • DeepSeek 助力 Vue 开发:打造丝滑的范围选择器(Range Picker)
  • 豪越科技:消防安全重点单位一体化安全管控
  • LLM有哪些可控超参数
  • MySQL性能优化
  • Redis(高阶篇)03章——缓存双写一致性之更新策略探讨
  • Azure Synapse Dedicated SQL Pool统计指定表中各字段的空值、空字符串或零值比例
  • 什么是 近端策略优化算法PPO
  • 【动态规划】(二)动态规划——0-1背包问题
  • 第35次CCF计算机软件能力认证 python 参考代码
  • RK3588 ubuntu20.04 换源 aarch64源
  • redis数据类型
  • 前四个月人民币贷款增加10.06万亿元,4月末M2余额同比增长8%
  • 体坛联播|C罗儿子完成国家队首秀,德约结束与穆雷合作
  • 美凯龙:董事兼总经理车建兴被立案调查并留置
  • 四部门:到2025年底,全国行政村5G通达率超过90%
  • 中国恒大:清盘人向香港高等法院申请撤回股份转让
  • 这一次,又被南昌“秀”到了