day51 动态规划part8

139. 单词拆分

中等
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。

注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

难点:很难想到要用完全背包去做它

class Solution {
    public boolean wordBreak(String s, List<String> wordDict) {
        HashSet<String> set = new HashSet<>(wordDict);
        boolean [] dp = new boolean[s.length() + 1];
        dp[0] = true;

        for (int i = 1; i <= s.length(); i++) { // 遍历背包, 要从1开始
            for (int j = 0; j < i && !dp[i]; j++) { // 遍历物品
                if (set.contains(s.substring(j, i)) && dp[j]) {
                    dp[i] = true;
                }
            }
        }
        return dp[s.length()];
    }
}

多重背包

总结

多重背包在面试中基本不会出现,力扣上也没有对应的题目,大家对多重背包的掌握程度知道它是一种01背包,并能在01背包的基础上写出对应代码就可以了。
在这里插入图片描述

终于结束背包问题了,累死。。。

相关推荐

  1. 代码随想录算法训练营day54|第九章 动态规划part15

    2024-03-26 01:48:05       45 阅读
  2. 代码随想录day35:动态规划part3

    2024-03-26 01:48:05       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 01:48:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 01:48:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 01:48:05       82 阅读
  4. Python语言-面向对象

    2024-03-26 01:48:05       91 阅读

热门阅读

  1. 树的广度遍历和深度遍历

    2024-03-26 01:48:05       40 阅读
  2. 递归——N皇后

    2024-03-26 01:48:05       38 阅读
  3. Python中图片的切块与合并

    2024-03-26 01:48:05       35 阅读
  4. 深度学习中一些常见的问题

    2024-03-26 01:48:05       33 阅读
  5. 【C++】学习记录--condition_variable 的使用

    2024-03-26 01:48:05       39 阅读
  6. Docker部署springboot项目

    2024-03-26 01:48:05       39 阅读
  7. sql jdbc测试

    2024-03-26 01:48:05       33 阅读
  8. Android adb命令发送广播介绍

    2024-03-26 01:48:05       33 阅读