LeetCode 198 打家劫舍

news/2024/11/2 7:32:30/

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

示例 1:

输入:[1,2,3,1]
输出:4
解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。
偷窃到的最高金额 = 1 + 3 = 4 。

示例 2:

输入:[2,7,9,3,1]
输出:12
解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
偷窃到的最高金额 = 2 + 9 + 1 = 12 。

思路:

dp数组的含义:考虑下标i,所能偷的最大的金币为dp[i]
递推公式
dp[i-1]表示不选择i的情况下能偷的最大值
dp[i - 2] + nums[i]表示选择i的情况下能偷的最大值
初始化:
dp[0]由于只有一个元素,所以只能选,偷
dp[1]可以在0和1之间选择一个最大的

class Solution {
public:int track(vector<int>& nums) {if (nums.size() == 0)return 0;if (nums.size() == 1)return nums[1];vector<int> dp(10001,0);dp[0] = nums[0];dp[1] = max(nums[0],nums[1]);for (int i = 2; i < nums.size();i++) {dp[i] = max(dp[i-1],dp[i-2]+nums[i]);}return dp[nums.size() - 1];}
};int main() {vector<int> nums= { 2, 7, 9, 3, 1 };Solution ss;cout<<ss.track(nums)<<endl;return 0;
}

http://www.ppmy.cn/news/81841.html

相关文章

luatOS网站 lua语言学习 练习题

lua 教程跳转链接&#xff0c;练习题都来自这里 逻辑运算 检验大小&#xff08;自测题&#xff09; 题目&#xff1a;如果已知number变量n&#xff0c;那么如果需要判断n是否符合下面的条件&#xff1a; 3<n≤10 以下四行判断代码&#xff0c;正确的是&#xff1f; &a…

Python+Yolov5果树上的水果(苹果)检测识别

程序示例精选 PythonYolov5果树上的水果(苹果)检测识别 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonYolov5果树上的水果(苹果)检测识别>>编写代码&#xff0c;代码整洁…

oracle如何写一个带参数的视图

--创建参数包 create or replace package view_risk is function set_depcode(depcode varchar2) return varchar2; function get_depcode return varchar2; function set_dmonth(dmonth varchar2) return varchar2; function get_dmonth return varchar2; end view_r…

SVD求解两组多维点之间的欧式变换矩阵,及halcon代码实现

之前研究了二维点的仿射变换&#xff0c;用解矩阵的方式求解了两组二维点之间的变换矩阵。 学习了下SVD&#xff0c;看到可以用SVD求解两组多维点之间的欧式变换矩阵&#xff0c;当然也是个最优化问题。 这里的变换只有平移和旋转&#xff0c;没有缩放。 一、先说结论&#…

python异常处理名称整理

Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。BaseException所有异常的基类UnboundLocalError访问未初始化的本地变量SystemExit

RK3568平台开发系列讲解(驱动基础篇)RK平台IR的使用

🚀返回专栏总目录 文章目录 一、红外遥控配置二、内核驱动2.1 DTS 定义键值表2.2 内核用户码和IR键值的获取2.3 编译 IR 驱动进内核2.4 Android 键值映射三、IR 波形沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对RK IR的使用进行学习。 一、红外遥控配置 …

新的开始(最小生成树+超级源点)

题目 我们建立一个超级源点&#xff0c;每个点都与超级源点相连&#xff0c;他们的权值为在该点建立发电站的费用&#xff0c;剩下的将其余点相连&#xff0c;权值为连接到已经通电的发电站费用&#xff0c;我们跑一遍最小生成树即可将他们全部相连&#xff0c;并且费用最小。 …

算法时间复杂度

参考视频&#xff1a;https://www.bilibili.com/video/BV14j411f7DJ 目录 1.常数阶O(1) 2.对数阶O(IogN) 3.线性阶O(n) 4.线性对数阶O(nlogN) 5.平方阶O(n^2) 6.立方阶O(n^3) 7.K次方阶O(n^k) 8.指数阶(2^n) 9.阶乘O(n!) 两层for循环 for (int i 1; i <…