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 分钟前
第十章 JavaScript的应用
开发语言·javascript·ecmascript
froginwe118 分钟前
SQLite Having 子句
开发语言
liujjjiyun11 分钟前
小U数数问题
c++·算法
好开心3316 分钟前
js高级06-ajax封装和跨域
开发语言·前端·javascript·ajax·okhttp·ecmascript·交互
不惑_23 分钟前
【Python入门第七讲】列表(List)
开发语言·python·list
无空念23 分钟前
C++ STL - vector/list讲解及迭代器失效
开发语言·c++
雪的期许23 分钟前
Python/GoLang/Java 多环境管理工具 pyenv/goenv/jenv
开发语言·python·策略模式
2401_8582861129 分钟前
L13.【LeetCode笔记】合并两个有序数组
c语言·开发语言·数据结构·笔记·算法·leetcode
飞奔的波大爷38 分钟前
springboot vue工资管理系统源码和答辩PPT论文
vue.js·spring boot·后端
正儿八经的数字经1 小时前
算力100问☞第17问:什么是NPU?
人工智能·算法