213. 打家劫舍 II


Python版本

python 复制代码
class Solution:
    def rob(self, nums: List[int]) -> int:
        n = len(nums)
        if(n == 1):
            return nums[0]
        if(n == 2):
            return max(nums[0],nums[1])
        def robMoney(left:int,right:int)->int:
            f1,f2 = nums[left],max(nums[left],nums[left+1])
            for i in range(left+2,right+1):
                t = f2
                f2 = max(f2,f1+nums[i])
                f1 = t
            return f2
        return max(robMoney(0,n-2),robMoney(1,n-1))

Java版本

java 复制代码
class Solution {
    public int robMoney(int[] nums,int left,int right){
        int t,f1 = nums[left],f2 = Math.max(nums[left],nums[left+1]);
        for(int i = left+2; i <= right; i++){
            t = f2;
            f2 = Math.max(f2,f1+nums[i]);
            f1 = t;
        }
        return f2;
    }
    public int rob(int[] nums) {
        int n = nums.length;
        if(n == 1) return nums[0];
        if(n == 2)return Math.max(nums[0],nums[1]);
        return Math.max(robMoney(nums,0,n-2),robMoney(nums,1,n-1));
    }
}

CPP版本

cpp 复制代码
class Solution {
public:
int robMoney(vector<int>& nums,int left,int right){
    int t,f1 = nums[left],f2 = max(nums[left],nums[left+1]);
    for(int i = left+2; i <= right; i++){
        t = f2;
        f2 = max(f2,f1+nums[i]);
        f1 = t;
    }
    return f2;
}
    int rob(vector<int>& nums) {
        int n = nums.size();
        if(n == 1)return nums[0];
        if(n == 2)return max(nums[0],nums[1]);
        return max(robMoney(nums,0,n-2),robMoney(nums,1,n-1));
    }
};
相关推荐
wm10433 分钟前
机器学习第二讲 KNN算法
人工智能·算法·机器学习
NAGNIP5 分钟前
一文搞懂机器学习线性代数基础知识!
算法
NAGNIP10 分钟前
机器学习入门概述一览
算法
曲莫终20 分钟前
Java VarHandle全面详解:从入门到精通
java·开发语言
一心赚狗粮的宇叔31 分钟前
中级软件开发工程师2025年度总结
java·大数据·oracle·c#
奋进的芋圆44 分钟前
DataSyncManager 详解与 Spring Boot 迁移指南
java·spring boot·后端
iuu_star1 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法
Yzzz-F1 小时前
P1558 色板游戏 [线段树 + 二进制状态压缩 + 懒标记区间重置]
算法
计算机程序设计小李同学1 小时前
个人数据管理系统
java·vue.js·spring boot·后端·web安全
漫随流水1 小时前
leetcode算法(515.在每个树行中找最大值)
数据结构·算法·leetcode·二叉树