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/

相关推荐
地平线开发者14 分钟前
J6B vio scenario sample
算法
勇哥java实战分享1 小时前
PaddleOCR 太慢?我换成 RapidOCR 后,速度直接起飞
后端
苏三说技术6 小时前
LangChain4j 和 LangGraph4j,哪个更好?
后端
ServBay7 小时前
7 个AI开发中真正用得上的 MCP Server,配合Claude Code食用效果更佳
后端·claude·mcp
妙码生花7 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
用户6757049885028 小时前
Go 语言里判断字符串为空,90% 的人都写错了!
后端·go
用户6757049885028 小时前
Go 进阶必修:90% 的人都没用对的“表驱动法”
后端·go
小兔崽子去哪了8 小时前
Java 生成二维码解决方案
java·后端