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/

相关推荐
码云数智-大飞1 分钟前
Java接口与抽象类:从本质区别到架构选型
开发语言
小碗羊肉2 分钟前
【从零开始学Java | 第二十三篇】泛型(Generics)
java·开发语言·新手入门
Aaswk8 分钟前
刷题笔记(回溯算法)
数据结构·c++·笔记·算法·leetcode·深度优先·剪枝
m0_7505803011 分钟前
Java并发—Java线程
java·开发语言
我不是懒洋洋23 分钟前
预处理详解
c语言·开发语言·c++·windows·microsoft·青少年编程·visual studio
NAGNIP27 分钟前
一文搞懂CNN经典架构-ResNet!
算法·面试
计算机安禾27 分钟前
【数据结构与算法】第14篇:队列(一):循环队列(顺序存储
c语言·开发语言·数据结构·c++·算法·visual studio
腾讯云云开发31 分钟前
用 OpenClaw + CloudBase 自动化开发网站:30分钟从安装到上线
后端·ai编程
Frostnova丶32 分钟前
(11)LeetCode 239. 滑动窗口最大值
数据结构·算法·leetcode
独断万古他化40 分钟前
【Java 实战项目】多用户网页版聊天室:消息传输模块 —— 基于 WebSocket 实现实时通信
java·spring boot·后端·websocket·ajax·mybatis