代码随想录算法训练营第四十天|leetcode139题

一、leetcode第139题

本题是完全背包问题,由于可以重复使用,因此需要先遍历背包再遍历物品,dp[i]的含义是在长度为i处能否从数组中找到元素组成。

具体代码如下:

cpp 复制代码
class Solution {
public:
    bool wordBreak(string s, vector<string>& wordDict) {
    vector<bool>dp(s.length()+1,false);
    unordered_set<string>wordset(wordDict.begin(),wordDict.end());
    dp[0]=true;
    for(int i=1;i<=s.length();i++)
    {
        for(int j=0;j<i;j++)
        {
            string word=s.substr(j,i-j);
            if(wordset.find(word)!=wordset.end()&&dp[j]==true)
            {
                dp[i]=true;
            }
        }
    }
    return dp[s.length()];
    }
};
相关推荐
DoraBigHead1 小时前
小哆啦解题记——异位词界的社交网络
算法
木头左2 小时前
逻辑回归的Python实现与优化
python·算法·逻辑回归
lifallen6 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
web_Hsir8 小时前
vue3.2 前端动态分页算法
前端·算法
地平线开发者10 小时前
征程 6M 部署 Omnidet 感知模型
算法·自动驾驶
秋说11 小时前
【PTA数据结构 | C语言版】线性表循环右移
c语言·数据结构·算法
浩瀚星辰202411 小时前
图论基础算法:DFS、BFS、并查集与拓扑排序的Java实现
java·算法·深度优先·图论
oioihoii14 小时前
C++随机打乱函数:简化源码与原理深度剖析
开发语言·c++·算法
不知名。。。。。。。。14 小时前
分治算法---快排
算法
minji...14 小时前
数据结构 算法复杂度(1)
c语言·开发语言·数据结构·算法