LeetCode-198

【中等】力扣算法题解析LeetCode198:打家劫舍 本文解决了一个动态规划问题:小偷在不能连续偷窃相邻房屋的限制下,如何最大化偷窃金额。通过定义两个状态变量 pre 和 cur,分别表示前两个和前一个房屋的最大收益,实现了空间复杂度为 O(1) 的优化。时间复杂度为 O(n),只需遍历数组一次。Java 代码实现简洁高效,通过状态转移(偷或不偷当前房屋)逐步更新收益最大值。例如,输入 [2,7,9,3,1] 时,最优解为偷第 1、3、5 号房屋,总金额 12。该方法避免了使用额外数组,显著提升了空间效率。 阅读详情

打家劫舍

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

示例 1:
输入:[1,2,3,1]
输出:4

LeetCode链接
很经典的斐波那契问题,可以去看看官方简介。

class Solution 
{
public:
    int rob(vector<int>& nums) 
    {
        if (nums.empty()) 
        {
            return 0;
        }
        int size = nums.size();
        if (size == 1) 
        {
            return nums[0];
        }
        //只需要存两项
        int first = nums[0], second = max(nums[0], nums[1]);
        int temp = 0;
        for (int i = 2; i < size; i++) 
        {
            temp = second;
            second = max(first + nums[i], second);
            first = temp;
        }
        return second;
    }
};


MATLAB 论文复现——面向紧急需求响应的规模化灵活资源负荷管理快速决策方法 其次,对灵活资源参与EDR的功率分配模型进行了建模,并提出了基于分层分布式共识算法的快速决策方法,对功率分配模型进行快速求解,以满足EDR实时性的需求,在保证较高精度的前提下提高了决策速度。[1]孔祥玉,杨至端,孙裕策,等.面向紧急需求响应的规模化灵活资源负荷管理快速决策方法[J/OL].电力系统自动化,1-13[2024-07-29].http://kns.cnki.net/kcms/detail/32.1180.TP.20240709.1843.002.html.关键词: 规模化灵活资源; 阅读详情

相关推荐

MWORKS 2025a电气模型库实战:手把手教你搭建全桥LLC电路(附避坑指南)

本文详细介绍了如何使用MWORKS 2025a电气模型库搭建全桥LLC电路,包括环境准备、电路拓扑构建、参数优化及故障诊断。通过实战案例和避坑指南,帮助电源工程师高效设计谐振转换器,提升转换效率至98%以上。文章特别强调了Modelica模型库在电气系统建模中的关键作用。

s8t9u0v1w的博客 603

3924: 练54.5 损失最小

有�n件艺术品,每件艺术品的价值是��ai​。小明准备把艺术拿去拍卖,不幸的是,在路上遇到了劫匪。劫匪不懂艺术,只劫财并不会伤害小明,他要求小明给他其中�m件艺术品。小明不敢反抗,只能按劫匪的要求去做。现在请你帮忙计算,把哪些艺术品给劫匪可以让损失最小。数据范围:1≤�≤�≤1061≤m≤n≤106,1≤��≤1091≤ai​≤109。输出�m行,每个一个整数表示给出的艺术品价值,你必须从小到大输出。第二行�n个整数��ai​,表示每件艺术品的价值。第一行两个正整数�n,�m,含义如上文所述。

AaBb114的博客 1361

用于多种无人机协作的群体智能算法:综合综述

随着无人机技术的快速高水平发展,将多架无人机作为自主控制的编队应用于复杂情况是一个新兴领域的代表之一。在实现自主控制的挑战中,碰撞避免、任务分配、路径规划和编队重构是关键功能。本文对各种经典的无人机群智能算法进行了系统的总结和分析。

erjia_的博客 1万+

代码随想录算法训练营day44|| 第八章 动态规划

动态规划

wsq06209023的博客 281

统信UOS安装CH384串口卡驱动

本文讲解如何在统信UOS系统下安装CH384 PCIE多串口驱动安装过程,CPU为飞腾D2000。其他Linux内核系统安装亦可参照类似方法。

shjhuang的专栏 1884

VSLAM框架对比

格VSLAM特点介绍: (一)ORB-SLAM2 (二)ORB-SLAM3 (三)LSD-SLAM (四)

ljtx200888的博客 2295

(贪心)硬币问题——算法笔记

尽量使用大面值硬币。 因为不用大面值,将使用更多小面值硬币,一定得不到最优解。 #include <iostream> using namespace std; int cnts[6]; //放相应的硬币数 int coins[6]={1,5,10,50,100,500}; //硬币种类 int num[6]; //表示对应的硬币用了多少个 int res; //所需最少...

GaoJuno23的博客 492

fpga进阶--时序约束

1、基础概念 1.1 建立(setup)/保持(hold)时间 上述的锁存沿会将数据保存下来,但是必须要满足一定的条件: 建立时间Tsu:在时钟有效沿之前,数据必须保持稳定的最小时间; 保持时间Th:在时钟有效沿之后,数据必须保持稳定的最小时间; 1.2 亚稳态(Metastability) 亚稳态是由于违背了触发器的建立和保持时间而产生的,设计中任何一个触发器都有特定的建立和保持时间,在时钟上升沿前后的这段时间窗口内,数据输入信号必须保持稳定。如果信号在这段时间内发生了变化,那么输...

HHH的博客 2443

力扣LeetCode: 198 打家劫舍

动态规划 入门题目 打家劫舍

weixin_73982851的博客 543

基于STM32设计的便携式心电信号监测系统_146

基于STM32 设计的便携式心电信号监测系统,采用 PulseSensor 心率传感器进行数据采集,通过 LCD 显示屏显示心电数字数据和采集状态。同时,该系统还采用 HC05 蓝牙模块将实时心电信号数据传输到手机 APP,用户可以在手机 APP 上实时查看采集的数据并绘制心率曲线。此外,STM32 上的按键可以控制心率采集状态,用户登录手机 APP 还可以查看实时心电信号折线图。

1万+

基于单光子探测的高重频多通道符合测距

TDC专栏之基于单光子探测的高重频多通道符合测距

sdau2005的博客 1202

LeetCode 198

LeetCode 198, House Robber, 这个分治递归写的还是有点问题,可以修正到直接递归rob函数,正常情况下,maxRob的第一个和第二个参数相加就是rob的第一个参数。

staugusto的专栏 535

国产化替代落地:C#+Avalonia跨平台开发(麒麟系统适配全流程)

摘要: 随着国产化替代政策的推进,麒麟操作系统成为国产替代的重要选择。本文介绍了如何使用C#和Avalonia框架开发跨平台应用,适配麒麟系统。Avalonia支持Windows、Linux(包括麒麟)和macOS,通过XAML设计UI,便于开发者快速上手。文章详细讲解了开发环境配置、XAML控件设计、Linux特性适配及性能优化,并强调政府30%研发补贴带来的政策红利。未来,随着国产系统生态完善,C#+Avalonia将成为企业跨平台开发的高效解决方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3475

Leetcode 198. 打家劫舍

Leetcode 198. 打家劫舍1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/house-robber/   本质上就是一个动态规划问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace std; #include "algorithm"

珍惜 7824

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

力扣LeetCode 198题:打家劫舍(动态规划)

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

LifeGoesOn 362

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

198. 打家劫舍 - 力扣(LeetCode)

本文介绍了一个解决"打家劫舍"问题的动态规划算法。该算法采用滚动数组思想,仅使用两个变量(rob1,rob2)记录前两个状态,空间复杂度为O(1)。通过遍历数组,在每个位置计算抢与不抢的最优解,时间复杂度为O(n)。以输入[2,7,9,3,1]为例,最终最优解为12(抢劫第1、3、5个房屋)。算法优势在于高效利用了最优子结构,确保每个决策都考虑所有可能性,同时极大优化了空间使用。

Rickest_man的博客 300

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

力扣:198.打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。从递推公式dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);可以看出,递推公式的基础就是dp[0] 和 dp[1]dp[i] 是根据dp[i - 2] 和 dp[i - 1] 推导出来的,那么一定是从前到后遍历!dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。.

qq_56762247的博客 231

LeetCode 198打家劫舍

LeetCode 198打家劫舍 题目简述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 0 <= nums.length <= 100 0 <= nums[i] <= 400 输入:[1,2,3,1] 输出:4 解

XBlog 247

Leetcode198. 打家劫舍

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

会流泪de鱼的博客 363

LeetCode198 House Robber

LeetCode198 House Robber 问题来源LeetCode198 问题描述 You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you

yanqinghe123的专栏 293

力扣198.打家劫舍---动态规划与滚动数组

力扣198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 1: 输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。 示例 2:.

xiangguang_fight的博客 245

力扣198. 打家劫舍(动态规划)

力扣198. 打家劫舍(动态规划) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 1: 输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 +...

小麦China的博客 285

0044力扣198题---打家劫舍

力扣198题---打家劫舍

java工作室 200

力扣第 198 场周赛部分题解

力扣第 198 场周赛部分题解 class Solution { public: int numWaterBottles(int numBottles, int numExchange) { int a = 0,b = 0; int sum = 0; sum+=numBottles; while (numBottles >= numExchange) { a = (numBottles)

chun_ai_zhi_qing的博客 293

leetcode198打家劫舍

dp[i] 的值取决于是否选择偷窃当前的房屋 i,以及偷窃之前房屋的情况。递推公式 dp[i] = max(dp[i-1], dp[i-2] + nums[i]) 就是基于这两种选择所能获得的最大金额计算出来的。最终,dp[n-1] 就是小偷在 n 间房屋内所能获得的最大金额。动态规划(Dynamic Programming,简称 DP)是一种算法设计技巧,用于解决具有重叠子问题和最优子结构性质的问题。它的核心思想是通过将问题分解为更小的子问题,逐步求解并保存这些子问题的解,从而构建出原问题的解。

weixin_43683432的博客 1241

力扣第198题“打家劫舍”

本文详细解读了力扣第198题“打家劫舍”,通过使用动态规划高效地解决了这一问题,并提供了详细的解释和模拟面试问答。希望读者通过本文的学习,能够在力扣刷题的过程中更加得心应手。

10年数据\经营分析经验,现任大厂数据分析负责人 675
上一篇: LeetCode-179
下一篇: VS-Qt报错-无法解析的外部符号:qt_metacall metaObject
GreedySnaker
博客等级 码龄7年 29粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值