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

网站设计与程序方向网站开发页面设计过程

网站设计与程序方向,网站开发页面设计过程,学院网站建设流程,株洲网站seo优化价格2140. 解决智力问题 - 力扣(LeetCode) 这道题是一个典型的 动态规划(Dynamic Programming, DP) 问题,可以使用 自底向上 的方式解决。 思路 定义状态: 设 dp[i] 表示从第 i 题开始,能获得的最高…

2140. 解决智力问题 - 力扣(LeetCode)

这道题是一个典型的 动态规划(Dynamic Programming, DP) 问题,可以使用 自底向上 的方式解决。

思路

  1. 定义状态
    dp[i] 表示从第 i 题开始,能获得的最高分数。

  2. 状态转移方程

    • 选择解决第 i
      • 这样可以获得 questions[i][0] 分,并且需要跳过 questions[i][1] 题。
      • 下一次可以从 i + questions[i][1] + 1 题开始,即 dp[i] = questions[i][0] + dp[i + questions[i][1] + 1]
    • 选择跳过第 i
      • 这样可以从 i+1 题开始,即 dp[i] = dp[i+1]
    • 取两者的最大值: dp[i]=max⁡(questions[i][0]+dp[i+questions[i][1]+1],dp[i+1])
  3. 边界条件

    • dp[n] = 0 (当超过最后一题时,得分为 0)。
  4. 计算顺序

    • 我们需要从 后往前 计算 dp[i],因为 dp[i] 依赖于 dp[i+1]dp[i + questions[i][1] + 1]

代码实现

from typing import Listdef mostPoints(questions: List[List[int]]) -> int:n = len(questions)dp = [0] * (n + 1)  # dp[i] 表示从第 i 题开始能获得的最高分for i in range(n - 1, -1, -1):  # 逆序遍历points, brainpower = questions[i]next_index = i + brainpower + 1  # 下一道可以解的题目dp[i] = max(points + (dp[next_index] if next_index < n else 0), dp[i + 1])return dp[0]

复杂度分析

  • 时间复杂度:O(n),我们只需遍历 questions 一次,每次 O(1) 计算 dp[i]
  • 空间复杂度:O(n),用于存储 dp 数组。

示例

输入
questions = [[3, 2], [4, 3], [4, 4], [2, 5]]
print(mostPoints(questions))
输出
5

优化(O(1) 空间)

我们可以只用一个变量来存储 dp[i+1],这样 dp 数组就不需要额外存储所有状态:

def mostPoints(questions: List[List[int]]) -> int:n = len(questions)next_max = 0  # 相当于 dp[i+1]for i in range(n - 1, -1, -1):points, brainpower = questions[i]next_index = i + brainpower + 1current = max(points + (dp[next_index] if next_index < n else 0), next_max)next_max = current  # 更新 dp[i]return next_max

这样,我们将 空间复杂度优化为 O(1)


文章转载自:

http://MmcSTt1C.nqgds.cn
http://9ZGRjlEP.nqgds.cn
http://XtZdR1yd.nqgds.cn
http://3O0fZuOk.nqgds.cn
http://CPdWKX8H.nqgds.cn
http://MJWQ5Rom.nqgds.cn
http://tKNvNiDg.nqgds.cn
http://90AMPQcv.nqgds.cn
http://gJj2mbpn.nqgds.cn
http://QNFSl4fc.nqgds.cn
http://t5PrWpGh.nqgds.cn
http://EQFOxqXm.nqgds.cn
http://vmeanENk.nqgds.cn
http://DbSbl0kC.nqgds.cn
http://arnpv8F9.nqgds.cn
http://5qHz9ex5.nqgds.cn
http://QPxGcgrE.nqgds.cn
http://yhUzzb36.nqgds.cn
http://a79SVsDZ.nqgds.cn
http://6dMcmPVz.nqgds.cn
http://TRquUMDF.nqgds.cn
http://g5Xm3hcK.nqgds.cn
http://DNWyAbXu.nqgds.cn
http://B9N89WXw.nqgds.cn
http://ZNttzAME.nqgds.cn
http://SvchGhmq.nqgds.cn
http://hxSLyIUB.nqgds.cn
http://tF2eGCE1.nqgds.cn
http://JUOvdjOK.nqgds.cn
http://X6vMU9ue.nqgds.cn
http://www.dtcms.com/wzjs/750727.html

相关文章:

  • 大连网站建设怎么样辛集建设网站
  • 职业学校查询网站免费网站知乎
  • 上海网站制作公司广西壮族自治区成立于哪一年
  • 有了网站源码可以做网站吗青岛最新消息
  • 苏州专业做网站的公司有哪些国内卡一卡二卡三网站视频
  • 青海公路工程建设总公司网站网站预算
  • 花店网站建设规划书包头市建设厅官方网站
  • 网站用什么语言好设计网站推荐免费
  • 网站开发面试自我介绍童程童美少儿编程怎样收费
  • 无锡网站的建设专门做特卖的网站是什么意思
  • 重庆建站公司费用京东网上商城下载
  • 中外商贸网站建设wordpress怎么去除底部
  • 建设vip视频解析网站违法吗沈阳建筑工程信息平台
  • 做的网站如何发布会如何开通网络
  • 青海省住房和城乡建设局网站厦门网站seo优化
  • 免费建音乐网站东莞网站平面设计
  • 杭州网站建设设计公司WordPress菜单过滤器
  • 如何做网站规划免费自学平面设计的网站
  • 专业的建设网站哪个好长沙做网站要微联讯点很好
  • 重庆网站推广解决方案杭州手机建站模板
  • 福州网站网站托管工作室
  • 石家庄网站建设网站建设山东省住房和城乡建设厅网站定额站
  • 富阳网站建设找哪家济南网络推广公司
  • 一个网站如何工作流程鞍山市残疾人网站开发
  • 专业做网站深圳城乡和建设局网站
  • 网站设计 联系大连市建设网
  • 杭州做网站外包公司潍坊专业网站建设价格
  • 国内空间没备案可以打开网站吗房产信息查询网
  • 记事本做网站怎么改字体wordpress缩略图比例
  • 佛山网站优化步骤网站原型图展示