当前位置: 首页 > article >正文

90. 打家劫舍II (房子围成一圈)

题目

在这里插入图片描述

题解

class Solution:
    def rob(self, nums: List[int]) -> int:

        def dp(nums: List[int]) -> int:
            N = len(nums)
            # 定义状态:dp[i]表示从第i个房屋开始偷窃,能够偷到的最高金额
            dp = [0 for i in range(N)]
            for i in range(N-1, -1, -1):
                if i == N-1:
                    dp[i] = nums[i]
                elif i == N-2:
                    dp[i] = max(nums[i], nums[i+1])
                else:
                    dp[i] = max(dp[i+1], nums[i] + dp[i+2])
            return dp[0]
        if len(nums) == 1:
            return nums[0]
        res = max(dp(nums[:-1]), dp(nums[1:]))
        return res

http://www.kler.cn/a/145349.html

相关文章:

  • 青少年编程与数学 02-008 Pyhon语言编程基础 07课题、数字
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.21 索引宗师:布尔索引的七重境界
  • 使用CSS实现一个加载的进度条
  • 设计模式-建造者模式、原型模式
  • JMeter插件 Arrivals Thread Group 源码解析:实现原理与性能测试中的应用
  • 改进候鸟优化算法之四:基于动态环境的MBO算法(D-MBO)
  • 【理解ARM架构】操作寄存器实现UART | 段的概念 | IDE背后的命令
  • linux shell操作 - 05 进程 与 IO 模型
  • vue--The template root requires exactly one element.的解决办法
  • RT-DETR 更换损失函数之 SIoU / EIoU / WIoU / Focal_xIoU
  • 【LeetCode】挑战100天 Day17(热题+面试经典150题)
  • 第四题-abb 【第六届传智杯程序设计挑战赛解题分析详解复盘】(JavaPythonC++实现)
  • 【数据结构实验】排序(一)冒泡排序改进算法 Bubble及其性能分析
  • 数据结构-归并排序+计数排序
  • leetcode中“辅助栈”类题目和“单调栈”类题目的异同
  • Redis当中的BitMap,实现github打卡功能
  • 嵌入式设备摄像头基础知识
  • Python算法——霍夫曼编码树
  • tensorflow和pytorch的联系与区别
  • 基于PyQT5的图像分类网络训练平台
  • 鸿蒙开发报错:agconnect sdk not initialized. please call initialize()【BUG已解决】
  • Go 异常处理流程
  • 第六题-红和蓝【第六届传智杯程序设计挑战赛解题分析详解复盘】(JavaPythonC++实现)
  • 《数据结构与算法之美》读书笔记2
  • c语言实现10进制转16进制
  • kotlin 内置函数对数组进行各种操作