Algorithm 形成目标词的最小贴纸数算法
这里有一个算法问题:我们有一个目标词(即“历史”),我们有一些“贴纸”:(即“数学”、“英语”、“故事”)。每个贴纸都有无穷多个标签。我们希望找到构成目标词的最小贴纸数量 贴纸实际上是一组字母。我们可以拆分一张贴纸以使用单个字母。对于目标“历史”,我们可以使用标签“英语”中的“故事”和“h,i”(两个字母)来获取“历史”。因此,对于“历史”,使用的最小贴纸数量为2(“故事”+“英语”)Algorithm 形成目标词的最小贴纸数算法,algorithm,hashmap,dynamic-programming,Algorithm,Hashmap,Dynamic Programming,这里有一个算法问题:我们有一个目标词(即“历史”),我们有一些“贴纸”:(即“数学”、“英语”、“故事”)。每个贴纸都有无穷多个标签。我们希望找到构成目标词的最小贴纸数量 贴纸实际上是一组字母。我们可以拆分一张贴纸以使用单个字母。对于目标“历史”,我们可以使用标签“英语”中的“故事”和“h,i”(两个字母)来获取“历史”。因此,对于“历史”,使用的最小贴纸数量为2(“故事”+“英语”) 我使用的是Java,所以我想用HashMap来表示每个字母出现的目标单词。然后使用回溯法尝试各种可能的贴纸组合
我使用的是Java,所以我想用HashMap来表示每个字母出现的目标单词。然后使用回溯法尝试各种可能的贴纸组合。有没有更聪明的方法来解决这个问题,或者可以应用优化?这听起来像是多集多核问题 也许本文的动态规划方法与您相关 除了动态规划:解决这个问题(当需要一个最优解时)的常见疑点是,并且具有巧妙的公式。甚至可能。我认为SAT是最有前途的方法,虽然不是完全微不足道的(因为目标中有多个相等的字符,并且因为无限可用性)。