Day 42算法记录| 动态规划 08

这里写目录标题

139. 单词拆分

单词就是物品,字符串s就是背包

1.dp0背包啥也不要用装,true。

  1. for循环,顺序很重要,所以先背包再物品
    如果求组合数就是外层for循环遍历物品,内层for遍历背包 。
    如果求排列数就是外层for遍历背包,内层for循环遍历物品 。

3.递归:

要么装包或者不装

添加链接描述

java 复制代码
class Solution {
    public boolean wordBreak(String s, List<String> wordDict) {
        int len = s.length();
     boolean[] dp = new boolean[len+1];
     dp[0] = true;
     for(int i=1;i<=len;i++){ //背包
        for(String word : wordDict){
            int n = word.length();
            if(i>=n&&word.equals(s.substring(i-n,i))){
                dp[i] =  dp[i] ||dp[i-n];
            }
        }
     }
     return dp[len];
    }
}

多重背包问题

背包问题总结

把这五部都搞透了,算是对动规来理解深入了。

确定dp数组(dp table)以及下标的含义

确定递推公式

dp数组如何初始化

确定遍历顺序

举例推导dp数组


2.遍历顺序
一维:第二层的背包是从大到小
注意for循环分别表示的含义

相关推荐
微尘hjx1 天前
【Deep-OC-SORT 02】多轨迹算法Deep-OC-SORT-相对 OC-SORT 的改进点
人工智能·算法·yolo·目标跟踪·视觉检测·ultralytics·deep-oc-sort
梦帮科技1 天前
意识启发式量子隧穿退火算法用于全局优化 (CITA) 完整技术指南
网络·人工智能·算法·量子计算·模拟退火算法
一去不复返的通信er1 天前
排序 + 双指针:力扣15三数之和
算法·leetcode
Pniubi1 天前
力扣3无重复字符的最长字串(滑动窗口)
算法·leetcode·职场和发展
On The Road :1 天前
深入理解 JVM 垃圾回收:GC 是什么、如何判定垃圾、四大回收算法全解析
jvm·算法
微尘hjx1 天前
【Deep-OC-SORT 03】多轨迹算法Deep-OC-SORT-卡尔曼滤波预测过程
算法·yolo·目标跟踪·ultralytics·车跟踪·轨迹算法·deep-oc-sort
老师我太想进步了20261 天前
【数据结构-3】算法美学之降复杂度
数据结构·算法
机器人零零壹1 天前
技术白皮书:iRobotCAM如何解决机器人激光切割应用中的核心难点,从CAD离线编程到双目视觉定位与轨迹自适应提升复杂空间曲线切割的精度、效率与柔性化水平
人工智能·算法
ZhengEnCi1 天前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱
算法
取名真是2 天前
Python 算法知识点从基础到进阶
开发语言·python·算法