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

Python实现“打家劫舍“的一种方法

Python实现“打家劫舍“的一种方法你是一个专业的小偷计划偷窃沿街的房屋。每间房内都藏有一定的现金影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统如果两间相邻的房屋在同一晚上被小偷闯入系统会自动报警 给定一个代表每个房屋存放金额的非负整数数组计算你在不触动警报装置的情况下能够偷窃到的最高金额解题思路对于每个房屋你有两个选择偷当前房屋那么就不能偷前一个房屋总金额 当前房屋金额 前前个房屋为止的最大金额不偷当前房屋总金额 前一个房屋为止的最大金额状态转移方程dp[i] max(dp[i-1], dp[i-2] nums[i])class Solution(object): def rob(self, nums): :type nums: List[int] :rtype: int if not nums: return 0 if len(nums) 1: return nums[0] sum_list [nums[0]] sum_list.append(max(nums[0], nums[1])) for i in range(2, len(nums)): sum_list.append(max(sum_list[i - 2] nums[i], sum_list[i - 1])) return sum_list[-1] if __name__ __main__: solution Solution() print (solution.rob([1, 2, 3, 3, 4, 2]))空间优化版本由于只需要前两个状态可以优化空间复杂度到 O(1)def rob(nums): if not nums: return 0 if len(nums) 1: return nums[0] prev2 nums[0] # dp[i-2] prev1 max(nums[0], nums[1]) # dp[i-1] for i in range(2, len(nums)): current max(prev1, prev2 nums[i]) prev2 prev1 prev1 current return prev1示例# 示例1 nums [1, 2, 3, 1] print(rob(nums)) # 输出: 4 (偷第1和第3个房屋: 134) # 示例2 nums [2, 7, 9, 3, 1] print(rob(nums)) # 输出: 12 (偷第1、3、5个房屋: 29112)时间复杂度O(n)空间复杂度O(1)
http://www.zskr.cn/news/1359013.html

相关文章:

  • AI开始替人跑任务后,真正决定体验的不是模型,而是向量引擎
  • IntelliJ IDEA 2023.3 集成 Maven 3.8.3 保姆级避坑指南:从环境变量到项目构建全流程
  • 华为员工职业发展手册
  • 从ARTIC流程到细菌基因组:Medaka在病原体监测中的实战应用与避坑要点
  • Postman Bad string报错根源与JSON交付链路排查指南
  • 告别Selenium!用Playwright+Python抓取豆瓣电影Top10并自动存Excel(保姆级避坑指南)
  • 智慧管网物联网平台助力城市生命线长效运营与健康发展
  • 嵌入式C语言寄存器优化技巧与编译器原理
  • 从‘打包’到‘拆包’:用Wireshark抓包实战,图解802.11帧聚合(A-MSDU/A-MPDU)的完整生命周期
  • 保姆级教程:手把手教你用Arduino IDE 2.0给ESP8266 NodeMCU刷入第一个程序(附离线包下载)
  • 内娱唯三“大嫂”徐冬冬高叶马旭东 谁是你心中的天花板?
  • webMAN-MOD完整指南:如何通过Web服务器和FTP服务彻底释放你的PS3潜力
  • ESLyric-LyricsSource 技术深度解析:跨平台逐字歌词格式转换架构剖析
  • 2026劳力士官方售后大焕新|全国服务中心全面升级新址统一启用 - 资讯纵览
  • 为Hermes Agent配置自定义模型供应商Taotoken
  • 用AI写论文,重复率和AIGC疑似率能同时控制在20%以内吗?实测几款主流软件的结果
  • 如何永久激活IDM?免费IDM激活脚本终极指南
  • SpringBoot-Scan:面向红队的SpringBoot资产指纹与测绘工作流
  • 3大核心优势:如何用Chat UI组件库快速构建企业级AI聊天界面
  • AI 智能法律咨询维权与风险研判平台,赋能法务服务数字化升级
  • 大模型MoE架构揭秘:稀疏激活如何让万亿参数高效运行
  • Gopher360:用游戏手柄解放你的客厅电脑
  • 如何在8GB显存上实现高清视频生成:ComfyUI-FramePackWrapper完全指南
  • Fast-GitHub:终极免费解决方案,让GitHub访问速度提升100倍
  • 手把手教你搞定CH340驱动:Windows 10/11下RS485转USB连接Modbus温度传感器的完整流程
  • 为什么你的Midjourney生成图总偏灰?调色板未启用Lab空间锚点,92%用户忽略的关键开关!
  • 案例之RNN案例_AI歌词生成器
  • 基于VSCode与CMake的G32R501 MCU现代化开发环境搭建实战
  • 2026年企业AI搜索排名,佛山GEO代运营给出新解法 - 速递信息
  • 从STM32迁移到智芯车规MCU:我的开发环境踩坑与快速配置指南