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));
    }
};
相关推荐
青皮桔2 分钟前
Java+OpenCV实现图片切割
java·后端·opencv·计算机视觉
兮动人7 分钟前
Spring中@Configuration注解的proxyBeanMethods属性详解
java·后端·spring
zl9798998 分钟前
SpringBoot-数据访问之Druid
java·spring boot
自信1504130575919 分钟前
初学者小白复盘15之指针(4)
c语言·数据结构·算法
郝学胜-神的一滴20 分钟前
Cesium绘制线:从基础到高级技巧
前端·javascript·程序人生·线性代数·算法·矩阵·图形渲染
猫头虎32 分钟前
解决升级IDEA2025.2后,每次打开Maven项目爆红的问题:Windows和Mac解决方案
java·ide·macos·maven·intellij-idea·idea·intellij idea
NFG89C36 分钟前
Adobe Lightroom Classic 2025解锁版 (专业照片管理)
java·adobe·工具
蒙奇D索大1 小时前
【计算机网络】408计算机网络高分指南:物理层编码与调制技术精讲
java·前端·学习·计算机网络
豐儀麟阁贵1 小时前
5.2 类
java·开发语言
东皇太星1 小时前
机器学习概念,算法原理及应用
算法·机器学习·梯度下降法