首页 > 其他分享 >打家劫舍(动态规划)

打家劫舍(动态规划)

时间:2025-01-07 21:44:45浏览次数:1  
标签:动态 偷窃 nums int 金额 房屋 打家劫舍 规划 dp

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

 

示例 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 。

 

 

class Solution {
public:
    int rob(vector<int>& nums) {
        int n = nums.size();
        if(n==1) return nums[0];
        vector<int> dp(n);//dp[i]表示以i为结尾时,能获取的最高金额
        dp[0] = nums[0];
        dp[1] = max(nums[1],dp[0]);//在第二个房间偷(nums[1])还是不偷(dp[0])
        for(int i=2;i<n;i++){
            dp[i] = max(nums[i]+dp[i-2],dp[i-1]);//在第i个间偷(nums[1]+dp[i-2])还是不偷(dp[i-1])
        }
        return dp[n-1];
    }
};

 

标签:动态,偷窃,nums,int,金额,房屋,打家劫舍,规划,dp
From: https://www.cnblogs.com/yueshengd/p/18658431

相关文章

  • Luogu P3041 USACO12JAN Video Game G 题解 [ 紫 ] [ AC 自动机 ] [ 动态规划 ]
    VideoGamesG:弱智紫题,30min切了,dp思路非常板。多模式串一看肯定就是要建出AC自动机,然后在fail树里下传标记,预处理每个节点到达后的得分。然后设计\(dp_{i,j}\)表示第\(i\)个字符,AC自动机里匹配节点在\(j\)的最大答案,刷表法转移即可:\[dp_{i+1,ch_{j,c}}\gets\ma......
  • 线性规划对偶小记
    有\(n\)个变量\(x_1,x_2,\dots,x_n\),有若干条限制,形如:\(f(x_1,x_2,\dots,x_n)\leb\)\(f(x_1,x_2,\dots,x_n)=b\)\(f(x_1,x_2,\dots,x_n)\geb\)三种不同形式(注意不能取小于或大于号),可称这些限制是线性的。同时,需要最大化\(\sum\limits_{i=1}^......
  • 最低票价(记忆化搜索/动态规划)
    题目链接:https://leetcode.cn/problems/minimum-cost-for-tickets/题意:给你一个数组days[]代表旅行的日期,一个数组costs[],可以分别选择1天或7天或30天的票,问你使旅行结束所需要的最低票价是多少示例1:输入:days=[1,4,6,7,8,20],costs=[2,7,15]输出:11解释:例如,这里有......
  • 动态规划大杂烩
    全放一起的话实在是很卡,所以这其实是个目录。更新日志:2025.1.7:整理出这个东西动态规划基本类型待开坑。动态规划优化高维前缀和(SOSDP)斜率优化wqs二分动态dp树上依赖性背包长剖优化dp例题动态规划题单1动态规划题单2动态规划题单3......
  • 51单片机--动态数码管显示
    点击查看代码/*动态数码管显示(数码管扫描) xff 2025/1/7 扫描方式:单片机直接扫描*/#include<REGX52.H>#include"Delay.h"voidNixieDisplay(unsignedintloc,num);voidmain(){ while(1) { NixieDisplay(1,1); NixieDisplay(2,2); Nix......
  • 二维动态规划
    [Algo]二维动态规划fx1-暴力递归,fx2-记忆化搜索,fx3-严格位置依赖,fx4-状态压缩1.最小路径和//1.最小路径和//https://leetcode.cn/problems/minimum-path-sum/description/intf11(vector<vector<int>>&grid,inti,intj){intn=grid.size(),m......
  • 一维动态规划
    [Algo]一维动态规划fx1-暴力递归,fx2-自顶向底动态规划(记忆化搜索),fx3-自底向顶动态规划(严格位置依赖)1.最低票价//1.最低票价//https://leetcode.cn/problems/minimum-cost-for-tickets/description/intduration[3]={1,7,30};intf11(vector<int>&da......
  • C语言实现通讯录(动态的版本)
    通讯录的实现框架动态的版本通讯录默认能存放3个人的信息如果空间不够了,就增加空间,每次增加2个人的空间实现一个通讯录:人的信息:名字+年龄+性别+电话+地址1.增加联系人2.删除指定联系人3.查找联系人4.修改联系人5.显示联系人6.排序测试功能test.c......
  • DLL侧载(DLL Side-Loading) 是一种攻击技术,通常被黑客利用来执行恶意代码。它发生在应用
    DLL侧载(DLLSide-Loading)是一种攻击技术,通常被黑客利用来执行恶意代码。它发生在应用程序加载动态链接库(DLL)文件时,攻击者通过某些手段将恶意的DLL文件植入到应用程序的正常路径或不受限制的目录中,从而欺骗操作系统或应用程序加载恶意DLL,导致执行攻击者控制的代码。1. 什么是DLL......
  • 76页智能工厂规划及实施案例学习智能工厂规划
        智能工厂规划及实施中,综合布线系统作为核心基础设施,扮演着至关重要的角色。该系统以标准化、统一化、简化的方式,精心布置建筑物内外的通信网络,涵盖网络、电话、监控、电源及照明等多个子系统,确保信息传输的高效与稳定。综合布线不仅是物理线路的集合,更是智慧工厂信......