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));
    }
};
相关推荐
yuniko-n24 分钟前
【JUC】原子类 LongAdder
java
郝学胜-神的一滴31 分钟前
AI 编程智能体 17:四步搞定专属AI智能体
大数据·人工智能·python·神经网络·算法·langchain·强化学习
瑞got44 分钟前
java使用CountDownLatch做并行查询
java·开发语言
微尘hjx44 分钟前
【StrongSort 03】多轨迹算法StrongSort改进点
人工智能·算法·yolo·视觉检测·ultralytics·strongsort·轨迹算法
梦帮科技1 小时前
QML-04-QGraph-Diff:量子非欧图扩散生成模型与 SE(3) 等变分子晶格逆向合成完整技术指南(上部分)
人工智能·算法·自动化·量子计算·傅里叶分析
七牛开发者1 小时前
TokenGate:端到端可训练的 Token 剪枝机制,让大模型 Prefill 提速 11.3 倍
算法·机器学习·剪枝·长上下文·tokengate
谢尔登1 小时前
02_开发环境配置
java
学长毕设1 小时前
基于springboot的实验室设备管理系统
java·spring boot·后端
H.莓飛2 小时前
【数据结构】排序总结与规模实测
linux·服务器·开发语言·数据结构·visual studio·1024程序员节