动态规划 DP (三)

news2024/9/26 3:29:09

4.分割DP

对于分割类型题,动态规划的状态转移方程通常并不依赖相邻的位置,而是依赖于满足分割
条件的位置。
1)
力扣icon-default.png?t=N5K3https://leetcode.cn/problems/perfect-squares/举个例子对于8来说,要计算 完全平方数的最少数量 ,需要依次遍历:8-1*1, 8-2*2这两个数的 完全平方数的最少数量 ,选择最少的那个,然后加一,就是8的 完全平方数的最少数量 。
所以转移方程是
dp[i] = 1 + min(dp[i-1*1], dp[i-2*2], dp[i-3*3], ......dp[i-j*j])  (i-j*j>=0)
class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n+1,INT_MAX);
        dp[0] = 0;
        for(int i=1;i<=n;i++){
            for(int j=1;j*j<=i;j++){
                dp[i] = min(dp[i], dp[i-j*j]+1);
            }
        }
        return dp[n];
    }
};

2)

力扣icon-default.png?t=N5K3https://leetcode.cn/problems/decode-ways/当前元素的解码方法,取决于当前元素和前一个元素

如果结合起来是一个11到26之间的数字 ,那说明当前元素有两种解码方法,一种是与前一个元素结合,一种是独立成为一个数字

如果结合起来是10,那说明当前元素只有一种解码方法,就是与前一个元素结合,因为0不能独立存在

如果结合起来是一个不在10到26之间的数字,那说明当前元素只有一种解码方法,就是独立成为一个数字

除此之外,再考虑一下不存在解码方法的情况就可以了。

class Solution {
public:
    int numDecodings(string s) {
        int n = s.size();
        vector<int> dp(n+1,1);
        
        if((s[0]-'0')==0) return 0;
        if(n<2) return n;
        int pre = s[0]-'0';
        for(int i=2;i<=n;i++){
            int cur = s[i-1] - '0';
            if((pre==0||pre>2)&&cur==0){
                return 0;
            }
            if((pre==1)||(pre==2 && cur<7)){
                if(cur==0){
                    dp[i] = dp[i-2];
                }else{
                    dp[i] = dp[i-1] + dp[i-2];
                }
            }else{
                dp[i] = dp[i-1];
            }

            pre = cur;
        }
        return dp[n];

    }
};

3)

力扣icon-default.png?t=N5K3https://leetcode.cn/problems/word-break/

这道题比较清晰,每当子串与字典中的词相等时,当前的状态就会等于字符串中减掉字串的坐标的状态。这样两重遍历后,就可以得到结果。

class Solution {
public:
    bool wordBreak(string s, vector<string>& wordDict) {
        int n = s.size();
        vector<bool> dp(n+1, false);
        dp[0] = true;
        for(int i=1;i<=n;i++){
            for(string w:wordDict){
                int len = w.length();
                if(i>=len && s.substr(i-len, len)==w){
                    dp[i] = dp[i] || dp[i-len];
                }
            }
        }
        return dp[n];
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/688794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

剑指offer刷题笔记--Num21-30

1--调整数组顺序使奇数位于偶数前面&#xff08;21&#xff09; 主要思路&#xff1a; 双指针法&#xff0c;左指针从 0 开始遍历&#xff0c;直到遇到偶数&#xff0c;右指针从 len - 1 开始遍历&#xff0c;直到遇到奇数&#xff1b; 这时左指针指向偶数&#xff0c;右指针指…

kube-proxy源码阅读

kube-proxy源码阅读 通过阅读kube-proxy的源码可以将proxy的主要逻辑总结为下图所示&#xff1a; 首先顺着代码阅读到ProxyServer->Run()函数&#xff0c;这里是kube-proxy启动的主逻辑&#xff0c;启动了两个server&#xff0c;分别是&#xff1a; ...var errCh chan err…

基于深度学习的高精度安全帽背心检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度安全帽背心检测识别系统可用于日常生活中或野外来检测与定位安全帽背心目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的安全帽背心目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用…

【软考网络管理员】2023年软考网管初级常见知识考点(18)-安全协议SSL与PGP、数据加密技术

涉及知识点 安全套接层协议SSL详解&#xff0c;PGP协议是什么&#xff1f;数据加密技术有哪些&#xff1f;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多考点…

JUC之LockSupport和中断

文章目录 1 线程中断机制1.1 什么是线程中断机制1.2 三大中断方法1.3 如何中断运行中的线程1.3.1 通过volatile变量实现1.3.1 通过AtomicBoolean实现1.3.1 通过interrupt和isInterrupted api实现 2 LockSupport2.1 为什么会出现LockSupport2.2 两道面试题 参考材料 1 线程中断机…

案例合集 | 创新社会组织服务,打造“数字化商协会”

数字化建设方兴未艾数字化商会势在必行 近年来&#xff0c;国务院、发改委等机构陆续出台了一系列鼓励数字经济与产业数字化发展的规划指南&#xff0c;内容主要涵盖鼓励平台经济建设、促进供应链数字化转型与提升中小企业数字化渗透等方面&#xff0c;顶层政策引导并促进企业…

使用Gradio的BarPlot模块创建交互式柱状图

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

SQL和NoSQL数据库的便捷速查表

在项目成功的过程中选择合适的数据库非常重要。以下是关键要点的总结&#xff1a; •SQL数据库提供结构化数据存储、SQL支持和关系能力。•NoSQL数据库提供灵活性、可扩展性和分布式架构。•专门的数据库&#xff0c;如列存储、图形数据库、空间数据库和时间序列数据库&#xf…

Jetpack compose中实现流畅的Theme选择器动画

Jetpack compose中实现流畅的Theme Picker动画 Jetpack Compose改变了我们在Android上管理主题的方式。它提供了更大的灵活性&#xff0c;使我们能够以更多的方式定义用户界面&#xff08;UI&#xff09;。此外&#xff0c;Compose中的动画系统使我们能够轻松创建令人印象深刻和…

如何训练全自动的安卓ai脚本(yolov5 为例) 实现游戏应用自动屏幕识别点击

必要资源 yolo训练方法&#xff0c;调参要点:https://docs.ultralytics.com/ncnn yolov5 示例:https://github.com/nihui/ncnn-android-yolov5在线模型转换&#xff1a;https://convertmodel.com/ 硬件配备 32G 内存, 2060 英伟达显卡 操作步骤 1.准备好数据集&#xff0c…

管理类联考——逻辑——知识篇——形式逻辑——五、联言选言——haimian

联言&选言 考点分析 考点分析 削弱 年度 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023题量6222111 联言 本质定义 联言命题是断定两种或两种以上事物情况同时存在的命题&#xff0c;用“A并且B”表示&#xff0c;逻辑符号为A ∧ B。 若“A ∧ B”为真…

为什么uCOSii的栈顶不再是0x20000000

我将FreeRTOS的工程文件移植到基于uCOSii系统中&#xff0c;发现两个系统生成的栈顶地址不一样&#xff0c;即使栈的大小相同&#xff0c;都是用Keil编译器&#xff0c;差别很大。见下图&#xff1a; Stack_Size EQU 0x00001000; 以前一直使用FreeRTOS系统&#xff0c…

简单易懂:Vue3框架三天速成(一)

前言&#xff1a;学习Vue框架首先需要具备基本的HTML5、CSS3、JavaScript基础&#xff0c;了解基本概念以及用法再来学习Vue会事半功倍&#xff01; 一、初识Vue Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09; 是一套构建用户界面的渐进式框架。Vue 只关注视图层&a…

【服务器数据恢复】raid5故障导致LUN无法访问的数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器中有一组由数块SAS硬盘组建的RAID5阵列&#xff0c;阵列中有1块热备盘&#xff0c;上层部署OA以及Oracle数据库。 服务器故障&#xff1a; 该磁盘阵列中有2块硬盘出现故障先后离线&#xff0c;RAID5阵列瘫痪&#xff0c;上层LUN无法…

使用记事本编写第一个GO程序

开发环境&#xff1a; go1.18.3 记事本 先来看一下要编写的第一个hello,world Go程序 package main import "fmt"func main() {/* this is my first Go program*/fmt.Println("hello,world") } 第一行代码 package main定义了域名&#xff0c;你必须在源文…

设计模式->观察者设计模式和订阅者发布者设计模式的区别

设计模式->观察者设计模式和订阅者发布者设计模式的区别 一、先复习一下观察者设计模式的相关定义,优点,以及缺点1.定义观察者模式的三个典型例子 2.优点3.缺点4.观察者设计模式的主要角色5.代码举例完整代码 二、回答问题:观察者设计模式和订阅者发布者设计模式的区别 一、…

【Java-SpringBoot+Vue+MySql】项目开发综合—经验总结

目录 框架&#xff1a; 编程思维&#xff1a; MVC架构: 前端——组件式开发 开发思路梳理&#xff1a; 后端—— 前端—— 效果图 信息列表&#xff1a; 修改用户​编辑 新增用户 删除用户 数据清空 批量上传 框架&#xff1a; 后端&#xff1a;JAVA-SpringBoot2.6、包管理器M…

13.RocketMQ之消息的存储与发送

1. 消息存储 1.1 消息存储 分布式队列因为有高可靠性的要求&#xff0c;所以数据要进行持久化存储。 消息生成者发送消息Broker收到消息&#xff0c;将消息进行持久化&#xff0c;在存储中新增一条记录返回ACK给生产者Broker消息给对应的消费者&#xff0c;然后等待消费者返回A…

Keras-4-深度学习用于计算机视觉-猫狗数据集训练卷积网络

0. 说明&#xff1a; 本篇学习记录主要包括&#xff1a;《Python深度学习》的第5章&#xff08;深度学习用于计算机视觉&#xff09;的第2节&#xff08;在小型数据集上从头开始训练一个卷积神经网络&#xff09;内容。 相关知识点&#xff1a; 从头训练卷积网络&#xff1b…

AI 绘画用 Stable Diffusion 图生图局部重绘功能给美女换装(这是我能看的嘛)

昨天带大家一起装好了 Stable Diffusion 的环境&#xff0c;今天就来带大家一起体验一下 Stable Diffusion 的局部重绘功能。 没装好环境的可以看上一篇&#xff1a;AI 绘画基于 Kaggle 10 分钟搭建 Stable Diffusion&#xff08;保姆级教程&#xff09; Stable Diffusion 的…