(LeetCode-动态规划-1) 动态规划

news/2025/6/19 17:59:39

爬楼梯

你正在爬楼梯。需要 n 步你才能到达顶部。每次你可以爬 1 或 2 个台阶。你有多少种不同的方式可以爬到楼顶呢?给定 n 将是一个正整数。
示例 1:输入: 2
输出: 2
说明: 有两种方法可以爬到顶端。1.  1 步 + 1 步
2.  2 步示例 2:输入: 3
输出: 3
说明: 有三种方法可以爬到顶端。1.  1 步 + 1 步 + 1 步
2.  1 步 + 2 步
3.  2 步 + 1 步
分析:
n=1时;步数step=1
n=2时;步数step=2
n=3时;步数step=3
n=4时;步数step=5
...
f(n)=f(n-1)+f(n-2)
vector<int> save;
int climbStairs(int n) {if(n==1)return 1;if(n==2)return 2;if(save.size()>(n-2))return save[n-3];save.push_back(climbStairs(n-1)+climbStairs(n-2));return save.back();
}

最大子序和

给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。
例如,给定序列 [-2,1,-3,4,-1,2,1,-5,4],
连续子序列 [4,-1,2,1] 的和最大,为 6。
分析:
nums:[-2,1,-3,4,-1,2,1,-5,4]
tmp:[-2,1,-2,4,3,5,6,1,5]tmp[0]=nums[0]
tmp[1]=max(nums[1],tmp[0]+nums[1])
tmp[2]=max(nums[2],tmp[1]+nums[2])
...
tmp[n]=max(nums[n],tmp[n-1]+nums[n])
int maxSubArray(vector<int>& nums) {vector<int> tmp;tmp.push_back(nums[0]);for(int i=1;i<nums.size();i++)tmp.push_back(max(nums[i],tmp[i-1]+nums[i]));sort(tmp.begin(),tmp.end());return tmp.back();
}

打家劫舍

你是一个专业的强盗,计划抢劫沿街的房屋。每间房都藏有一定的现金,阻止你抢劫他们的唯一的制约因素就是相邻的房屋有保安系统连接,如果两间相邻的房屋在同一晚上被闯入,它会自动联系警方。给定一个代表每个房屋的金额的非负整数列表,确定你可以在没有提醒警方的情况下抢劫的最高金额。
分析:
nums:[2,1,2,4,3]
tmp:[2,2,4,6,7]tmp[0]=nums[0];
tmp[1]=max(nums[0],nums[1])
tmp[2]=max(nums[2]+tmp[0],tmp[1])
...
tmp[n]=max(nums[n]+tmp[n-2],tmp[n-1])
int rob(vector<int>& nums) {if(!nums.size())return 0;if(nums.size()==1)return nums[0];vector<int> tmp;tmp.push_back(nums[0]);tmp.push_back(max(nums[0],nums[1]));for(int i=2;i<nums.size();i++)tmp.push_back(max(nums[i]+tmp[i-2],tmp[i-1]));return tmp.back();
}

https://dhexx.cn/news/show-2159286.html

相关文章

关于IE模型问题(AngularJs在IE上时好时坏)

<meta http-equiv"X-UA-Compatible" content"IE7" /> 1、如果在头部加入这行&#xff0c;将会使文档按照IE7的模型进行加载&#xff0c;会导致如AngularJS有时会不好使的问题。 2、在IE11中&#xff0c;Ajax进行Get请求时&#xff0c;浏览器会缓存数…

50天从三层级到六层级,“我也曾挣扎在生存边缘”

在淘宝做女装店掌柜&#xff0c;韩少祥还算是半个“新人”&#xff0c;但在服装领域&#xff0c;实际上他已闯荡了十多年&#xff0c;从设计到生产&#xff0c;是个实打实的行家。 梦开始的地方 深圳&#xff0c;是韩少祥梦开始的地方。2007年&#xff0c;韩少祥开了第一家女装…

让自己少走点弯路

首先说一下&#xff0c;我是一名在校学生&#xff0c;写的内容可能肤浅没内容&#xff0c;但是我觉得这是过程&#xff0c;所以还请看到博文的大佬多多指教&#xff0c;花点时间看完它&#xff0c;再提出你们宝贵的意见&#xff0c;谢谢&#xff01; 编程这个东西我是从大一开始…

open文件操作

基本方式&#xff1a; r 只读不写 w 只写模式&#xff0c;文件不存在则创建&#xff0c;文件存在则清空 x 只写模式&#xff0c;不可读&#xff0c;文件不存在可以创建&#xff0c;文件存在直接报错。 a 追加 &#xff0c; 不可读&#xff0c;不存在则创建&#xff0c;存在…

win7 64位安装oracle10g客户端心得

用了整整两天时间才在64位Win7下装好了Oracle的开发环境&#xff08;包括Oracle的客户端和第三方客户端工具&#xff09;&#xff0c;过程原来和32位类似&#xff0c;注意不能下载64位的安装包。 安装过程&#xff1a; 1、下载Oracle 10g的客户端程序&#xff0c;文件名是 1020…

apache简单命令

sudo apachectl start sudo apachectl stop sudo apachectl restart转载于:https://www.cnblogs.com/tempestT/p/10931486.html

2014级学生第一学期C++学习情况统计

2014级学生表现的统计数据如下&#xff1a; 2014级访问积分排名原创评论OJ submitOJ AC最少2851985863191138最多225542433187313446236平均29309889244122672013级同期的统计数据是&#xff1a;见http://blog.csdn.net/sxhelijian/article/details/18212995 2013级访问积分排…

java更改线的颜色设置_如何更改Android ListView分隔线的颜色?

我想改变ListView分隔线的颜色。 任何帮助&#xff0c;将不胜感激。#1楼对于单色线使用&#xff1a;list.setDivider(new ColorDrawable(0x99F10529)); //0xAARRGGBBlist.setDividerHeight(1);重要的是DividerHeight设置在分隔符之后 &#xff0c;否则你将得不到任何东西。#2楼…

Neural networks representation 习题

answer: Its stay the same. (结果不变) 原因&#xff1a;交换parameters matrix 1的两行使得其与matrix a1运算得到matrix a2时交换了 a2中的第一个元素和第二个元素&#xff0c;即a2 subscript1 and a2 subscipt2。 正好与其对应相乘的parameters matrix 2中的参数1和2交换…

容器开启数据服务之旅系列(一):Kubernetes如何解自建PostgreSQL运维之痛

容器开启数据服务之旅系列&#xff08;一&#xff09;&#xff1a;Kubernetes如何解自建PostgreSQL运维之痛 概述 本文为大家介绍一种容器化的数据服务 posgresql db on ACK&#xff0c;通过使用云盘自动挂载实现的块存储PVC来做到数据库的免运维恢复。借助阿里云Kubernetes服务…