Rust 力扣 - 198. 打家劫舍

文章目录

题目描述

题解思路

假设f(i)表示在1, i号内的房屋内进行偷盗能够获得的最高金额

存在递推公式

f(i) = max(f(i - 1), f(i - 2) + numsi)

即f(i)为选择i - 1号房屋的最大金额 和 选择i - 2号房屋的最大金额 的最大值

题解代码

rust 复制代码
impl Solution {
    pub fn rob(nums: Vec<i32>) -> i32 {
        let mut n = nums.len();
        if n == 1 {
            return nums[0]
        }
        let (mut a, mut b) = (nums[0], nums[0].max(nums[1]));

        for i in 2..n {
            (a, b) = (b, (a + nums[i]).max(b));
        }

        b
    }
}

题目链接

https://leetcode.cn/problems/house-robber/

相关推荐
可乐ea5 分钟前
【Spring Boot + MyBatis|第4篇】MyBatis 动态 SQL:if、where、foreach 使用详解
java·spring boot·后端·sql·mybatis
拾光师18 分钟前
Java AIO 详解:异步非阻塞 IO 的实现与实践
后端
洛水水24 分钟前
【力扣100题】76.搜索插入位置
数据结构·算法·leetcode
Techblog of HaoWANG28 分钟前
智巡守卫:多模态巡检智能体算法服务端设计与实现——基于Ollama+Qwen3.5的自动化巡检报告生成系统
运维·人工智能·算法·目标检测·自动化·边缘计算
伊灵eLing28 分钟前
GoLang 语言基础
开发语言·后端·golang
两年半的个人练习生^_^28 分钟前
JMM 进阶:彻底理解 synchronized 实现原理
java·开发语言
小白不白11130 分钟前
Invoke的用法
开发语言·人工智能·数码相机·计算机视觉·c#
techdashen33 分钟前
What is maintenance, anyway?
开发语言·后端·rust
万法若空36 分钟前
C/C++基本类型表示范围
c语言·开发语言·c++
小蒋学算法38 分钟前
算法-灌溉花园的最少龙头数目-贪心
算法