【动态规划】dp多状态问题

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:那个传说中的man的主页
🏠个人专栏:题目解析
🌎推荐文章:【LeetCode】winter vacation training

在这里插入图片描述


目录

  • 👉🏻按摩师
  • 👉🏻打家劫舍I
  • 👉🏻打家劫舍II

👉🏻按摩师

原题链接:按摩师
在这里插入图片描述

mycode:

class Solution {
public:int massage(vector<int>& nums) {int n = nums.size();vector<int> f(n),g(n);//考虑越界情况if(n==0) return 0;//初始化f[0] = nums[0],g[0] = 0;for(int i = 1;i<n;i++){f[i] = g[i-1]+nums[i];g[i] = max(f[i-1],g[i-1]);}return max(f[n-1],g[n-1]);}
};

👉🏻打家劫舍I

原题链接:打家劫舍I

mycode:

class Solution {
public:int rob(vector<int>& nums) {int n = nums.size();vector<int> f(n),g(n);//偷或不偷两种状态//初始化f[0] = nums[0],g[0] = 0;for(int i = 1;i<n;i++){f[i] = g[i-1]+nums[i];g[i] = max(f[i-1],g[i-1]);}return max(f[n-1],g[n-1]);}
};

👉🏻打家劫舍II

原题链接:打家劫舍II
在这里插入图片描述

mycode:

class Solution {
public:int rob1(vector<int>& nums,int left,int right){if(left>right) return 0;int n = nums.size();vector<int> f(n),g(n);f[left] = nums[left];for(int i = left+1;i<=right;i++){f[i] = g[i-1]+nums[i];g[i] = max(f[i-1],g[i-1]);}return max(f[right],g[right]);}int rob(vector<int>& nums) {int n = nums.size();return max(nums[0]+rob1(nums,2,n-2),rob1(nums,1,n-1));}
};

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

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

相关文章

Edge扩展插件安装位置

根据所获取的信息&#xff0c;Microsoft Edge的扩展插件安装位置和配置方式可以通过不同的方法管理。以下是一个大纲&#xff0c;概述了如何配置和管理Edge扩展插件&#xff1a; Edge扩展插件安装和管理大纲 了解扩展插件的安装模式 安装模式的选项&#xff1a;了解allowed、…

一元二次方程虚数解

对一元二次方程axbxc0 (a≠0)&#xff1b;若判别式△b-4ac<0,则方程无实根,虚数解为&#xff1a;x(-b i√(4ac-b))/(2a)。 只含有一个未知数&#xff08;一元&#xff09;&#xff0c;并且未知数项的最高次数是2&#xff08;二次&#xff09;的整式方程叫做一元二次方程[1] …

three.js学习笔记 day1-2

1.three.js是什么 开发Web 3D 应用的js封装类 2.three.js需要怎么上手 2.1引入 <script src"https://cdn.bootcdn.net/ajax/libs/three.js/r122/three.min.js"></script> 2.2三要数&#xff08;场景&#xff0c;照相机&#xff0c;渲染器&#xff0…

如何申请IP地址证书

什么是IP地址证书&#xff1f; IP地址证书是一种用于验证网站服务器身份的数字证书&#xff0c;它可以确保网站与用户之间的通信安全。与传统的域名证书不同&#xff0c;IP地址证书直接针对服务器的IP地址进行认证&#xff0c;适用于没有独立域名的网站或需要对多个域名进行统…

树莓派ubuntu22桌面配置(一)

烧录系统至树莓派 下载系统&#xff1a;https://ubuntu.com/download/raspberry-pi 选择合适的版本下载 镜像安装器安装&#xff1a;终端输入&#xff1a; sudo snap install rpi-imager 打开镜像安装器&#xff0c;按照需求选择树莓派版本与要写入的系统还有安装的u盘 方案…

Python 中的字符串匹配识别文本中的相似性

更多Python学习内容&#xff1a;ipengtao.com 字符串匹配是自然语言处理&#xff08;NLP&#xff09;和文本处理中的一个重要任务&#xff0c;它可以识别文本之间的相似性、找到相同或相似的模式&#xff0c;以及进行文本分类和信息检索等应用。本文将深入探讨Python中的字符串…

ssh 远程登录协议

一、SSH 服务 1.1 SSH 基础 SSH&#xff08;Secure Shell&#xff09;是一种安全通道协议&#xff0c;主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理&#xff0c;其中包括用户登录时输入的用户口令&#xff0c;SSH 为建立在应…

【Java-随笔】常见异常

org.apache.ibatis.exceptions.PersistenceException org.apache.ibatis.executor.ExecutorException Executor was closed.【说明】 SqlSession被关闭了&#xff0c;检查是否使用了被关闭的SqlSession&#xff1b;在sqlsession会话关闭后&#xff0c;再使用sqlsession就会出现…

坚持刷题|翻转二叉树

坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天先刷个简单的&#xff1a;翻转二叉树 题目 226.翻转二叉树 考察点 翻转二叉树又称为镜像二叉树&#xff0c;使用Java实现翻转二叉树通常是为了考察对二叉树的基本操作和递归的理解能力 递归的理解&#xff1a; 能够理解…

vue前端开发自学基础,动态切换组件的显示

vue前端开发自学基础,动态切换组件的显示&#xff01;这个是需要借助于&#xff0c;一个官方提供的标签&#xff0c;名字叫【Component】-[代码demo:<component :is"ComponetShow"></component>]。 下面看看代码详情。 <template><h3>动态…

独孤思维:程前其实不该道歉

最近沸沸扬扬的程前事件&#xff0c;说一个不同的视角观点。 程在三个old money面前&#xff0c;表现出肚里没货&#xff0c;不懂礼貌。 甚至还对三个老一辈进行人身攻击。 事件持续发酵&#xff0c;程顶不住压力&#xff0c;诚恳道歉&#xff0c;却被网络群嘲。 程彻底丧失…

opencv多张图片实现全景拼接

最近camera项目需要用到全景拼接&#xff0c;故此查阅大量资料&#xff0c;终于将此功能应用在实际项目上&#xff0c;下面总结一下此过程中遇到的一些问题及解决方式&#xff0c;同时也会将源码附在结尾处&#xff0c;供大家参考&#xff0c;本文采用的opencv版本为3.4.12。 首…

Qt/QML编程学习之心得:小键盘keyboard(36)

小键盘对于qml应用是经常用到的,在qml里面,就如一个fileDialog也要自己画一样,小键盘keyboard也是要自己画的,对于相应的每个按键的clicked都要一一实现的。 这里有一个示例: 代码如下: import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Window 2.0 im…

Jerry每次能向前或向后走n*n步(始终不能超过初始位置1e5),q(q <= 1e5)次询问,求向前走d最少要几次

题目 思路&#xff1a;因为有走的过程不能超初始位置1e5的限制&#xff0c;所以不能直接用奇数最多两次&#xff0c;4的倍数最多两次的结论。spfa&#xff0c;平方数的dis为1&#xff0c;然后推出其他数的dis #include<bits/stdc.h> using namespace std; #define int …

Python 与批处理:数据处理、系统管理和任务调度

批处理学习 大数据篇 &#xff5c; 大数据实操 三剑客之一的批处理 目录 批处理的概念使用场景框架选择选型如何选docker 安装 hivePython 操作 hivedocker 安装 sparkpyspark操作 dataframe如果使用 JAVA 原生的&#xff0c;而不用 spark会有什么区别 批处理的概念 批处理…

文件夹名称大小写转换的方法:提高文件管理效率的关键

在计算机的文件管理中&#xff0c;文件夹名称的大小写是经常被忽视的一个细节。这个看似微不足道的细节&#xff0c;却可能影响到文件管理效率和查找速度。下面一起来看云炫文件管理器如何批量修改文件夹名称大小写转换的方法&#xff0c;提高文件管理效率。 文件夹名称字母大…

使用swift创建第一个ios程序

一、安装xcode 先到app store中下载一个Xcode app 二、创建项目 1、项目设定 创建ios app 2、工程结构 三、修改代码实现按键联动 四、运行测试

S1-08 流和消息缓冲区

流缓冲区 流缓冲区一般用在不同设备或者不同进程间的通讯&#xff0c;为了提高数据处理效率和性能&#xff0c;设置的一定大小的缓冲区&#xff0c;流缓冲区可以用来存储程序中需要处理的数据、对象、报文等信息&#xff0c;使程序对可以对这些信息进行预处理、排序、过滤、拆…

2024.1.14力扣每日一题——删除排序链表中的重复元素

2024.1.14 题目来源我的题解方法一 双指针&#xff08;快慢指针&#xff09; 题目来源 力扣每日一题&#xff1b;题序&#xff1a;83 我的题解 方法一 双指针&#xff08;快慢指针&#xff09; 因为题目中的链表已经是升序排列&#xff0c;因此使用两个指针&#xff0c;分别…

华为常用的命令——display,记得点赞收藏!

华为设备提供了多条display命令用于查看硬件部件、接口及软件的状态信息。通常这些状态信息可以为用户故障处理提供定位思路。 常用的故障信息搜集的命令如下&#xff1a; 路由器常用维护命令表 交换机常用的故障信息搜集 关注 工 仲 好&#xff1a;IT运维大本营&#xff0c;获…