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

宝鸡建设公司网站谷歌seo优化中文章

宝鸡建设公司网站,谷歌seo优化中文章,营业执照代办服务平台,建网站需要多少费用题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 一个专业的小偷,计划偷窃一个环形街道上沿街的房屋&a…

题目难度: 中等

原题链接

今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~

题目描述

一个专业的小偷,计划偷窃一个环形街道上沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。

给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。

示例 1:

  • 输入:nums = [2,3,2]
  • 输出:3
  • 解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。

示例 2:

  • 输入:nums = [1,2,3,1]
  • 输出:4
  • 解释:你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。

示例 3:

  • 输入:nums = [0]
  • 输出:0

提示:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 1000

题目思考

  1. 如何处理环形街道首尾相连的问题?

解决方案

  • 分析题目, 不难发现这道题和上一道题目(Leetcode 剑指 Offer II 089. 打家劫舍)非常类似, 只是多了个环形街道首尾相连的条件, 那能否沿用之前的做法呢?
  • 答案是肯定的, 既然不能同时偷开头和结尾, 那我们可以分两次计算, 先排除开头, 再排除结尾, 然后取两者偷窃金额的较大值即可
  • 这样具体计算过程就可以使用之前的动态规划思路了, 这里就不再重复说明了, 不熟悉的同学可以回去看上一道题目(Leetcode 剑指 Offer II 089. 打家劫舍)
  • 另外这里存在一个问题, 假如只有一个房屋, 那么两次计算都计算的是空列表, 最后会错误地得到 0, 所以我们需要特殊判断这种情况, 如果只有一个房屋就直接偷它, 返回其金额即可
  • 下面的代码中有详细的注释, 方便大家理解
复杂度
  • 时间复杂度 O(N): 需要遍历整个数组两遍
  • 空间复杂度 O(1): 只需要几个常数空间的变量
代码
class Solution:def rob(self, nums: List[int]) -> int:# 两次动态规划+特殊处理单个房屋n = len(nums)if n == 1:# 只有一个房屋, 直接偷它return nums[0]def getMax(s, e):# 初始化ppre和pre都为0, 代表没偷时的金额ppre, pre = 0, 0for i in range(s, e + 1):x = nums[i]# 当前dp值是ppre+x和pre的较大值# 然后滚动更新ppre和preppre, pre = pre, max(pre, ppre + x)# 最终结果就是pre, 最后一个dp值return prereturn max(getMax(0, n - 2), getMax(1, n - 1))

大家可以在下面这些地方找到我~😊

我的 GitHub

我的 Leetcode

我的 CSDN

我的知乎专栏

我的头条号

我的牛客网博客

我的公众号: 算法精选, 欢迎大家扫码关注~😊

算法精选 - 微信扫一扫关注我

http://www.sczhlp.com/news/21088/

相关文章:

  • 苏州前几天网站建设深圳百度搜索排名优化
  • 【自学嵌入式:stm32单片机】串口收发HEX数据包
  • cursor基本配置
  • 2025.8.20模拟赛
  • 建设一个网站要多少钱台州关键词优化报价
  • 电商网站开发实验报告引流推广怎么做
  • 新疆生产建设兵团环保局网站域名网站
  • 本地镇江网站建设电商网站设计模板
  • 网站怎样做域名绑定网络营销顾问招聘
  • 复健OI记录
  • ctfshow_web打靶
  • 《51测试天地》电子杂志 第八十五期发布文章:聊聊Python中的链式调用
  • 信息孤岛难题何解?深度剖析三款知识管理工具
  • 网站模板 代码免费seo推广外包
  • h5高端网站建设淘宝seo搜索引擎原理
  • 大连做公司网站的公司网站怎么收录到百度
  • 软件下载网站怎么做南宁网站关键词推广
  • 建设银行行号查询网站线上营销渠道有哪些
  • 盐城网站建设费用建立网站需要什么技术
  • 怎么做网站专题百度云登录首页
  • 小工程承包的信息平台什么网站真实全网最好的推广平台
  • 有没有专门做胜负彩的网站东莞做网站哪家好
  • 8.9 CW 模拟赛 T2. 喝醉的兔子
  • 2025年《财富》中国40位40岁以下的商界精英
  • 洛谷题单指南-状态压缩动态规划-P4045 [JSOI2009] 密码
  • 回顾一下WPF原生实现命令
  • 外贸网站源代码亚马逊关键词快速优化
  • 企业信息怎么查询微信搜索seo优化
  • 如何判断一个网站是php还是asp商品关键词举例
  • 做网站刷东西windows优化大师功能