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/

相关推荐
Yeniden1 天前
Deepeek用大白话讲解 --> 迭代器模式(企业级场景1,多种遍历方式2,隐藏集合结构3,Java集合框架4)
java·开发语言·迭代器模式
老蒋新思维1 天前
反脆弱性设计:创始人IP与AI智能体如何构建愈动荡愈强大的知识商业|创客匠人
人工智能·网络协议·tcp/ip·算法·机器学习·创始人ip·创客匠人
SmoothSailingT1 天前
C#——LINQ方法
开发语言·c#·linq
景川呀1 天前
Java的类加载器
java·开发语言·java类加载器
Salt_07281 天前
DAY 36 官方文档的阅读
python·算法·机器学习·github
子洋1 天前
AI Agent 介绍
前端·人工智能·后端
k***92161 天前
Python 科学计算有哪些提高运算速度的技巧
开发语言·python
superman超哥1 天前
仓颉条件变量深度解析与实践:解锁高效并发同步
开发语言·python·c#·仓颉
道法自然|~1 天前
【PHP】简单的脚本/扫描器拦截与重要文件保护
开发语言·爬虫·php
GoWjw1 天前
在C&C++中结构体的惯用方法
c语言·开发语言·c++