写点什么

代码随想录 Day46 - 动态规划(八)

作者:jjn0703
  • 2023-08-21
    江苏
  • 本文字数:650 字

    阅读完需:约 2 分钟

作业题

139. 单词拆分

package jjn.carl.dp;
import java.util.*;
/** * @author Jjn * @since 2023/8/21 10:46 */public class LeetCode139 { public boolean wordBreak(String s, List<String> wordDict) { boolean[] dp = new boolean[s.length() + 1]; dp[0] = true; Set<String> set = new HashSet<>(wordDict); for (int i = 0; i <= s.length(); i++) { for (int j = 0; j < i; j++) { if (dp[j] && set.contains(s.substring(j, i))) { dp[i] = true; break; } } } return dp[s.length()]; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int count = scanner.nextInt(); List<String> wordDict = new ArrayList<>(count); for (int i = 0; i < count; i++) { wordDict.add(scanner.next()); } String s = scanner.next(); boolean wordBreak = new LeetCode139().wordBreak(s, wordDict); System.out.println(wordBreak); }}
复制代码

相关理论

多重背包

概念

有 N 种物品和一个容量为 V 的背包。第 i 种物品最多有 Mi 件可用,每件耗费的空间是 Ci ,价值是 Wi 。求解将哪些物品装入背包可使这些物品的耗费的空间 总和不超过背包容量,且价值总和最大。

处理方法

转化为 0-1 背包,套用 0-1 背包的解题方法。


发布于: 刚刚阅读数: 6
用户头像

jjn0703

关注

Java工程师/终身学习者 2018-03-26 加入

USTC硕士/健身健美爱好者/Java工程师.

评论

发布
暂无评论
代码随想录Day46 - 动态规划(八)_jjn0703_InfoQ写作社区