当前位置: 首页 > news >正文

代码随想录训练营二刷第四十八天 | 139.单词拆分 背包问题总结

代码随想录训练营二刷第四十八天 | 139.单词拆分 背包问题总结

一、139.单词拆分

题目链接:https://leetcode.cn/problems/word-break/
思路:单词拼字符串,完全背包。定义dp[i],为true表示可以拆分为一或多个单词。可能会出现aba的情况,字典{a, b},所以是排列数,背包在外,物品在内。

class Solution {public boolean wordBreak(String s, List<String> wordDict) {HashSet<String> set = new HashSet<>(wordDict);boolean[] valid = new boolean[s.length() + 1];valid[0] = true;for (int i = 1; i <= s.length(); i++) {for (int j = 0; j < i && !valid[i]; j++) {if (set.contains(s.substring(j, i)) && valid[j]) {valid[i] = true;}}}return valid[s.length()];}
}

二、背包问题总结

背包问题:一维数组,dp[j] = Math.max(dp[j], dp[j-nums[i]] + nums[i])。

01背包遍历顺序:先物品后背包,物品正序,背包逆序。

如若背包正序则会出现同一个物品重复放入,如物品1重量为1,背包空间为1时放入了,背包空间为2时又放入了。
如果先背包后物品,为了避免重复放入背包依然是逆序,背包容量固定时,每种背包容量只能放入一个物品,即为最大的物品,小的物品都放不进来或者被覆盖了。

求组合数排列数:dp[j] += dp[j - nums[i]]

完全背包遍历顺序:物品背包没有先后顺序,物品背包都是正序。因为同一个物品不限量可以放入多次,在背包采用正序中。

完全背包求组合数,物品在外,背包在内。求排列数,背包在外,物品在内。

相关文章:

代码随想录训练营二刷第四十八天 | 139.单词拆分 背包问题总结

代码随想录训练营二刷第四十八天 | 139.单词拆分 背包问题总结 一、139.单词拆分 题目链接&#xff1a;https://leetcode.cn/problems/word-break/ 思路&#xff1a;单词拼字符串&#xff0c;完全背包。定义dp[i]&#xff0c;为true表示可以拆分为一或多个单词。可能会出现ab…...

【数据挖掘】2017年 Quiz 1-3 整理 带答案

目录 Quiz 1Quiz 2Quiz 3Quiz 1 Answer Problems 1-2 based on the following training set, where A , B , C A, B, C A,B,</...

吃鸡高手必备工具大揭秘!提高战斗力,分享干货,一站满足!

大家好&#xff01;你是否想提高吃鸡游戏的战斗力&#xff0c;分享顶级的游戏作战干货&#xff0c;方便进行吃鸡作图和查询装备皮肤库存&#xff1f;是否也担心被骗&#xff0c;希望查询游戏账号是否在黑名单上&#xff0c;或者查询失信人和VAC封禁情况&#xff1f;在这段视频中…...

集群化环境前置准备

目录 部署 1. 配置多台Linux虚拟机 1.1 首先&#xff0c;关机当前CentOS系统虚拟机&#xff08;可以使用root用户执行init 0来快速关 机&#xff09; 1.2 新建文件夹 1.3 克隆 1.4 同样的操作克隆出&#xff1a;node2和node3 1.5 开启node1&#xff0c;修改主机名为node1&…...

nodejs开发环境搭建

Nodejs是一个开源的、跨平台JavaScript运行时环境&#xff0c;其使用V8引擎对JavaScript脚本执行解释&#xff0c;在前后端分离的应用架构设计中&#xff0c;其既能支持web页面服务应用的开发、也能支持后端接口服务应用的开发&#xff0c;类似于Java语言的J2EE运行时环境&…...

C语言qsort函数

排序qsort int int cmp(const void *a, const void *b) {return *(int *)a - *(int *)b;//先强转成int型&#xff0c;后解引用取值比较大小 }字符串数组 char a[] “hello world” //字符串数组&#xff0c;存放的是字符 int cmp(const void *a, const void *b) {return *(…...

如何使用 Hotshot 通过文字生成 GIF 动画

Hotshot 是一个基于人工智能的工具&#xff0c;可用于通过文字生成 GIF 动画。该工具使用最新的图像生成技术来创建逼真的动画&#xff0c;即使是复杂的文字描述也能做到。 hotshot访问地址 使用 Hotshot 生成 GIF 动画 要使用 Hotshot 生成 GIF 动画&#xff0c;您需要首先…...

吃鸡高手必备!这些技巧帮你提高战斗力!

大家好&#xff01;作为一名吃鸡玩家&#xff0c;我们都想提高自己的战斗力&#xff0c;享受顶级游戏作战干货&#xff0c;装备皮肤库存展示和查询&#xff0c;并避免被骗游戏账号。在这里&#xff0c;我将为大家介绍一些实用的技巧和工具&#xff0c;让你成为吃鸡高手&#xf…...

XV6 操作系统实验

环境搭建 ubuntu 新建一个文件setup.sh&#xff0c;内容如下 #获取工具链 git clone --recursive https://github.com/riscv/riscv-gnu-toolchain #安装必要依赖 sudo apt-get update sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev li…...

leetcode - 双周赛114

一&#xff0c;2869.收集元素的最小操作次数 // 解法&#xff1a;哈希表 从右往左遍历 class Solution {public int minOperations(List<Integer> nums, int k) {Set<Integer> set new HashSet<>();for(int i1; i<k; i){set.add(i);}for(int inums.size…...

【LeetCode刷题笔记】双指针

剑指 Offer 21.调整数组顺序使奇数位于偶数前面 解题思路&#xff1a; 对撞指针 &#xff0c; 从左边不停的找第一个偶数&#xff0c;从右边不停的找第一个奇数 &#xff0c;找到后 交换 两者位置 本题与【905. 按奇偶排序数组】几乎雷同。 剑指 Offer 57.和为s的两个数字 本题…...

互联网Java工程师面试题·Memcached 篇·第二弹

目录 10、memcached 如何实现冗余机制&#xff1f; 11、memcached 如何处理容错的&#xff1f; 12、如何将 memcached 中 item 批量导入导出&#xff1f; 13、如果缓存数据在导出导入之间过期了&#xff0c;您又怎么处理这些数据呢&#xff1f; 14、memcached 是如何做身份…...

特斯拉被称为自动驾驶领域的苹果

特斯拉的自动驾驶技术无疑是居于世界上领先地位的,有人形容特斯拉是自动驾驶汽车领域的苹果。特斯拉发布的Tesla Vision系统只配备了摄像头,不依靠雷达。 这并不是特斯拉唯一和其它对手不同的地方,他们的整个战略都是基于车队和销售产品,而其大多数竞争对手则销售自…...

stm32之HAL库操作PAJ75620

一、模块简介 手势模块PAJ7620主要利用IIC或SPI协议来实现数据的传输&#xff0c;本实验用的模块是以IIC来进行信息传输。支持电压从2.8v到3.6v, 正常可以选择3.3v。检测的距离从5到15cm, 可以检测9种手势&#xff0c;包括 右&#xff1a;编码为 0x01左&#xff1a;编码为 0x0…...

医学影像归档与通讯系统(PACS)系统源码 PACS三维图像后处理技术

医学影像归档与通讯系统&#xff08;PACS&#xff09;系统源码 PACS三维图像处理 医学影像归档与通讯系统&#xff08;PACS&#xff09;系统&#xff0c;是一套适用于从单一影像设备到放射科室、到全院级别等各种应用规模的医学影像归档与通讯系统。PACS集患者登记、图像采集、…...

web漏洞-PHP反序列化

目录 PHP反序列化序列化反序列化原理涉及技术利用危害CTF靶场 PHP反序列化 序列化 将对象转换成字符串 反序列化 相反&#xff0c;将字符串转换成对象。 数据格式的转换对象的序列化有利于对象的保存和传输&#xff0c;也可以让多个文件共享对象。 原理 未对用户输入的序列化字…...

Redis-分布式锁

分布式锁相关内容 超卖问题切入可以使用互斥锁给先获取到锁的线程加锁吗&#xff1f;使用redis分布式锁解决超卖问题setnx命令实现分布式锁为什么需要设置过期时间&#xff1f;Redis实现分布式锁如何合理控制锁的有效时长 redisson实现分布式锁 超卖问题切入 我们先来看一个项目…...

什么时候使用继承,好莱坞原则(设计模式与开发实践 P11+)

文章目录 好莱坞原则真的需要继承吗&#xff1f; 好莱坞原则 如果你熟悉继承方法、乃至模板方法模式后&#xff0c;就可以了解一个设计原则 好莱坞原则 新人演员把简历发给好莱坞&#xff0c;许久之后没有回应不耐烦打电话给好莱坞&#xff0c;只收到回应&#xff1a;不要来找…...

蓝桥等考Python组别十四级001

第一部分&#xff1a;选择题 1、Python L14 &#xff08;15分&#xff09; 运行下面程序&#xff0c;输出的结果是&#xff08; &#xff09;。 d {A: 501, B: 602, C: 703, D: 804} print(d[B]) 501602703804 正确答案&#xff1a;B 2、Python L14 &#xff08;15分…...

TI单芯片毫米波雷达代码走读(二十七)—— 角度维(3D)处理之通道间幅相一致性补偿

TI单芯片毫米波雷达1642代码走读(〇)——总纲 书接上回,我们知晓了3D处理的主要流程,相信大家都已理解基本的原理。在正式进行数据分析之前还有一步关键的步骤需要说明,即通道间的幅相一致性补偿问题。 细心的朋友可能注意到,在3D处理的的原码中有两个函数我一直没有讲:…...

数据科学家压力管理的艺术

原文&#xff1a;towardsdatascience.com/the-art-of-stress-management-as-a-data-scientist-e49981cd2aa7 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/96cbf6100471444654cae4816944e9b1.png Photo by Johnson Wang on Unsplash 数…...

FakeLocation终极指南:Android应用级虚拟定位的完整技术解析

FakeLocation终极指南&#xff1a;Android应用级虚拟定位的完整技术解析 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation FakeLocation是一款基于Xposed框架的Android虚拟定位模块…...

PHP使用Intervention Image图像处理

在 Web 开发中&#xff0c;图像处理是常见需求&#xff1a;缩略图生成、水印添加、格式转换……但原生 PHP 的 GD 库 API 复杂且易出错。本文将提供Intervention ImagePHP 图像处理库从安装到高级用法的完整实战指南&#xff0c;它能用极简代码完成复杂的图像操作。 目录 安装…...

开源AI演示文稿生成工具slide-sage:从原理到实践全解析

1. 项目概述&#xff1a;一个开源的演示文稿生成利器 如果你和我一样&#xff0c;经常需要制作技术分享、产品汇报或者教学课件&#xff0c;那你一定体会过那种面对空白PPT文档的“创作焦虑”。从构思大纲、搜集素材、设计排版到最终美化&#xff0c;一套像样的幻灯片做下来&a…...

Claude代码会话实战指南:从问答到结构化协作的效能提升

1. 项目概述&#xff1a;Claude Code Session 的实战效能提升指南最近在深度使用 Claude 进行代码开发时&#xff0c;我发现了一个宝藏仓库&#xff1a;mantra-hq/claude-code-session-tips。这并非一个可以直接运行的软件库&#xff0c;而是一份由社区高手们精心整理的、关于如…...

ARM LDM指令原理与应用详解

1. ARM LDM指令架构解析LDM(Load Multiple)指令是ARM架构中用于批量加载数据的核心指令之一。作为一位长期从事ARM底层开发的工程师&#xff0c;我经常需要在中断处理、上下文切换等场景中使用LDM指令。与单寄存器加载指令相比&#xff0c;LDM指令通过单条指令即可实现从连续内…...

3步在Windows电脑运行安卓应用的终极指南:APK安装器完全教程

3步在Windows电脑运行安卓应用的终极指南&#xff1a;APK安装器完全教程 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想过&#xff0c;如果能在Windows电…...

JESD204B协议在5G MIMO基站中的关键应用与优化

1. JESD204B协议在MIMO基站中的核心价值 现代无线通信系统正经历着从传统单天线向大规模MIMO&#xff08;多输入多输出&#xff09;架构的转型。作为5G基站的核心技术&#xff0c;Massive MIMO系统通常需要处理64T64R甚至更大规模的天线阵列&#xff0c;这对数据转换器&#xf…...

PRIME OS:基于React与Supabase的浏览器操作系统架构解析

1. 项目概述如果你和我一样&#xff0c;对“浏览器里的操作系统”这个概念着迷&#xff0c;同时又对市面上那些要么过于玩具化、要么复杂到无从下手的项目感到失望&#xff0c;那么今天聊的这个项目——PRIME OS&#xff0c;绝对值得你花时间深入研究。它不是一个简单的桌面模拟…...

Ubuntu 下 Rider 无法识别 Unreal Engine 的解决方法

Ubuntu 下 Rider 无法识别 Unreal Engine 的解决方法适用环境&#xff1a;JetBrains Rider Ubuntu Unreal Engine&#xff08;含预发布/自定义安装版本&#xff09;问题描述在 Ubuntu 上使用 Rider 打开 UE 项目时&#xff0c;IDE 提示找不到引擎&#xff0c;或 .uproject 文…...