Rust 力扣 - 198. 打家劫舍

文章目录

题目描述

题解思路

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

存在递推公式

f(i) = max(f(i - 1), f(i - 2) + nums[i])

即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/

相关推荐
小哀22 分钟前
🌸 入职写了一个月全栈next.js 感想
前端·后端·ai编程
ziwu6 分钟前
【民族服饰识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·后端·图像识别
程序员Easy哥7 分钟前
ID生成器第一讲:原理和常见几种生成器
后端
q***73559 分钟前
SpringBoot中使用TraceId进行日志追踪
spring boot·后端·状态模式
Penge66615 分钟前
Elasticsearch 跳表(Skip List):有序结果合并的 “性能电梯”
后端
Penge66626 分钟前
Elasticsearch BKD 树与 PointRangeQuery:为何数值查询会有性能瓶颈
后端
csbysj202033 分钟前
DOM 节点
开发语言
木木一直在哭泣38 分钟前
【收藏级】Java Stream.reduce 全面解析:从零到通透(原理图 + 实战 + 最佳实践)
后端
Penge66639 分钟前
Elasticsearch Filter 缓存:Bitset 如何让查询速度飙升
后端
用户849137175471639 分钟前
ThreadLocal 源码深度解析:JDK 设计者的“妥协”与“智慧”
java·后端