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

python-leetcode-解决智力问题

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)

相关文章:

python-leetcode-解决智力问题

2140. 解决智力问题 - 力扣&#xff08;LeetCode&#xff09; 这道题是一个典型的 动态规划&#xff08;Dynamic Programming, DP&#xff09; 问题&#xff0c;可以使用 自底向上 的方式解决。 思路 定义状态&#xff1a; 设 dp[i] 表示从第 i 题开始&#xff0c;能获得的最高…...

引领变革!北京爱悦诗科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!

在2025年“GAS消费电子科创奖”评选中&#xff0c;北京爱悦诗科技有限公司提交的“aigo爱国者GS06”&#xff0c;在技术创新性、设计创新性、工艺创新性、智能化创新性及原创性五大维度均获得评委的高度认可&#xff0c;荣获“产品创新奖”。 这一奖项不仅是对爱悦诗在消费电子…...

微信小程序+SpringBoot的单词学习小程序平台(程序+论文+讲解+安装+修改+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 &#xff08;一&#xff09;社会需求背景 在全球化的大背景下&#xff0c;英语作为国际…...

wordpress分类名称调用的几种情况

在WordPress中&#xff0c;如果你想调用当前分类的名称&#xff0c;可以使用single_cat_title()函数。以下是一些常见的使用方法和场景&#xff1a; 1. 在分类页面调用当前分类名称 如果你正在分类存档页面(category.php)中&#xff0c;可以直接使用single_cat_title()函数来…...

HMC7043和HMC7044芯片配置使用

一,HMC7043芯片 MC7043独特的特性是对14个通道分别进行独立灵活的相位管理。所有14个通道均支持频率和相位调整。这些输出还可针对50 Ω或100 Ω内部和外部端接选项进行编程。HMC7043器件具有RF SYNC功能,支持确定性同步多个HMC7043器件,即确保所有时钟输出从同一时钟沿开始…...

html播放本地音乐

本地有多个音乐文件&#xff0c;想用 html 逐个播放&#xff0c;或循环播放&#xff0c;并设置初始音量。 audio 在 html 中播放音乐文件用 audio 标签&#xff1a; controls 启用控制按钮&#xff0c;如进度条、播放、音量、速度等。不加不显示任何 widget。autoplay 理应启…...

Windows11下玩转 Docker

一、前提准备 WSL2&#xff1a;Windows 提供的一种轻量级 Linux 运行环境&#xff0c;具备完整的 Linux 内核&#xff0c;并支持更好的文件系统性能和兼容性。它允许用户在 Windows 系统中运行 Linux 命令行工具和应用程序&#xff0c;而无需安装虚拟机或双系统。Ubuntu 1.1 安…...

vLLM + Open-WebUI 本地私有化部署 DeepSeek-R1-Distill-Qwen-32B 方案

一、vLLM 部署 DeepSeek-R1-Distill-Qwen-32B DeepSeek-R1-Distill 系列模型是 DeepSeek-R1 的蒸馏模型&#xff0c;官方提供了从 1.5B - 70B 不同尺寸大小的模型。特别适合在计算资源有限的环境中部署。 DeepSeek-R1 各个版本的蒸馏模型评估结果如下&#xff1a; 其中 DeepS…...

【基础知识】回头看Maven基础

背景 项目过程中&#xff0c;对于Maven的pom.xml文件&#xff0c;很多时候&#xff0c;我通过各种参考、仿写&#xff0c;最终做出想要的效果。 但实际心里有些迷糊&#xff0c;不清楚具体哪个基础的配置所实现的效果。 今天&#xff0c;特意回过头来&#xff0c;了解Maven的基…...

在 MyBatis 中,若数据库字段名与 SQL 保留字冲突解决办法

在 MyBatis 中&#xff0c;若数据库字段名与 SQL 保留字冲突&#xff0c;可通过以下方法解决&#xff1a; 目录 一、使用转义符号包裹字段名二、通过别名映射三、借助 MyBatis-Plus 注解四、全局配置策略&#xff08;辅助方案&#xff09;最佳实践与注意事项 一、使用转义符号…...

docker-compose Install reranker(fastgpt支持) GPU模式

前言BGE-重新排名器 与 embedding 模型不同,reranker 或 cross-encoder 使用 question 和 document 作为输入,直接输出相似性而不是 embedding。 为了平衡准确性和时间成本,cross-encoder 被广泛用于对其他简单模型检索到的前 k 个文档进行重新排序。 例如,使用 bge 嵌入模…...

200W数据需要去重,如何优化?

优化去重逻辑的时间取决于多个因素&#xff0c;包括数据量、数据结构、硬件性能&#xff08;CPU、内存&#xff09;、去重算法的实现方式等。以下是对优化去重逻辑的详细分析和预期优化效果&#xff1a; 1. 去重逻辑的性能瓶颈 时间复杂度&#xff1a;使用HashSet去重的时间复…...

使用免费IP数据库离线查询IP归属地

一、准备工作 1.下载免费IP数据库 首先&#xff0c;访问 MaxMind官网&#xff08;https://www.maxmind.com/en/home&#xff09;如果你还没有MaxMind账号&#xff0c;可以通过此链接地址&#xff08;https://www.maxmind.com/en/geolite2/signup&#xff09;进行账号注册&…...

【游戏】【客户端性能测试】

待续… 一、 常见指标 1. 越高越好 FPS 2. 越低越好 网络流量CPU内存&#xff08;PSS&#xff0c; momo&#xff09;Drawcalls三角形数耗电量包体大小 二、 游戏体验 1. 直接体感 游戏花屏闪退卡顿延迟 2. 可能原因 内存超标Drawcall数量多FPS波动严重CPU占用高居不下…...

软考中级-数据库-3.3 数据结构-树

定义:树是n(n>=0)个结点的有限集合。当n=0时称为空树。在任一非空树中,有且仅有一个称为根的结点:其余结点可分为m(m>=0)个互不相交的有限集T1,T2,T3...,Tm…,其中每个集合又都是一棵树,并且称为根结点的子树。 树的相关概念 1、双亲、孩子和兄弟: 2、结点的度:一个结…...

typora高亮方案+鼠标侧键一键改色

引言 在typora里面有一个自定义的高亮, <mark></mark>>但是单一颜色就太难看了, 我使用人工智能, 搜索全网艺术家, 汇集了几种好看的格式,并且方便大家侧键一键 调用, 是不是太方便啦 ! 示例 午夜模式 春意盎然 深海蓝调 石墨文档 秋日暖阳 蜜桃宣言 使用方法 …...

【CSS】Tailwind CSS 与传统 CSS:设计理念与使用场景对比

1. 开发方式 1.1 传统 CSS 手写 CSS&#xff1a;你需要手动编写 CSS 规则&#xff0c;定义类名、ID 或元素选择器&#xff0c;并为每个元素编写样式。 分离式开发&#xff1a;HTML 和 CSS 通常是分离的&#xff0c;HTML 中通过类名或 ID 引用 CSS 文件中的样式。 示例&#…...

Linux(Centos 7.6)命令详解:vim

1.命令作用 vi/vim 是Linux 系统内置不可或缺的文本编辑命令&#xff0c;vim 是vi 的加强版本&#xff0c;兼容vi 的所有指令&#xff0c;不仅能编辑文本&#xff0c;而且还具有shell 程序编辑的功能&#xff0c;可以不同颜色的字体来辨别语法的正确性。 2.命令语法 usage: …...

记录一次wifi版有人物联串口服务器调试经过

1、首先买了一个华为的wifi路由器&#xff0c;连接上以后&#xff0c;设置好网络名字和wifi密码 2、用网线连接串口服务器&#xff0c;通过192.168.1.1登录&#xff0c;进行配置 找到无线客户端配置&#xff0c;先在基本配置中打开5G配置&#xff0c;然后再去5.8G配置中设置 …...

QWQ大模型评测榜单

评测榜单说明 在数学推理基准AIME24上&#xff0c;QwQ-32B达到了79.5分&#xff0c;几乎与DeepSeek-R1-617B的79.8分持平&#xff0c;远超OpenAI o1-mini的63.6分&#xff0c;及相同尺寸的R1蒸馏模型。 在编程能力方面&#xff0c;QwQ-32B 在LiveCodeBench上获得了63.4分&…...

用MakeCode Arcade与树莓派Zero打造复古像素游戏:从拖拽编程到实体街机

1. 项目概述&#xff1a;为什么选择MakeCode Arcade开启你的游戏开发之旅&#xff1f;如果你对编程充满好奇&#xff0c;又或者一直想亲手制作一款属于自己的复古像素风游戏&#xff0c;但被一行行复杂的代码劝退&#xff0c;那么MakeCode Arcade就是你一直在寻找的答案。它不是…...

UE5保姆级教程:用Electra Player插件在场景里放视频,从导入MP4到带声音播放

UE5实战指南&#xff1a;Electra Player插件实现场景视频播放全流程解析 在虚幻引擎5的沉浸式场景中&#xff0c;视频播放功能已成为增强环境叙事的关键技术。无论是商场里的动态广告屏、科幻场景中的全息投影&#xff0c;还是角色手持设备的交互界面&#xff0c;流畅的视频播放…...

【限时技术白皮书】ElevenLabs尼泊尔文语音质量评估体系(含MOS打分标准、基线数据集、及与Google Cloud Text-to-Speech Nepali v1.3对比)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs尼泊尔文语音质量评估体系概述 ElevenLabs 对尼泊尔文&#xff08;नेपाली&#xff09;语音合成的支持虽属新兴能力&#xff0c;但其质量评估需兼顾语言学特性、声学保真度与文化适配性…...

分享一些常见的SQL计算面试题

代码都是基于mysql实现&#xff0c;如果小伙伴们有其他的思路欢迎留言~ 1.行列转换2.分组求top-n3.连续登录问题&#xff08;包括日期可间断和不可间断&#xff09;4.找连续出现3次及以上的数字5.直播间同时在线人数统计1.行列转换 表tb1&#xff1a; 表tb2&#xff1a; 行转…...

技能管理框架skill-mix:用YAML与声明式配置构建可量化技能体系

1. 项目概述与核心价值最近在梳理团队的知识库和技能树时&#xff0c;我又一次深刻体会到&#xff0c;一个清晰、可量化、可追踪的技能管理体系对个人成长和团队效能有多重要。无论是作为技术负责人评估团队战斗力&#xff0c;还是作为一线开发者规划自己的学习路径&#xff0c…...

PCL2启动器:离线登录功能完整指南与实战应用

PCL2启动器&#xff1a;离线登录功能完整指南与实战应用 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher&#xff08;PCL&#xff09;。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL Plain Craft Launcher 2&#xff08;PCL2&#xff09;作为一款功能…...

手把手调SerDes眼图:从FFE系数配置到示波器实测避坑指南

手把手调SerDes眼图&#xff1a;从FFE系数配置到示波器实测避坑指南 在高速数字电路设计中&#xff0c;SerDes&#xff08;串行器/解串器&#xff09;技术已经成为现代通信系统的核心。无论是数据中心的光模块&#xff0c;还是消费电子中的USB4接口&#xff0c;SerDes都扮演着关…...

Claude与Codex双引擎协作:AI代码生成的新范式与实践

1. 项目概述&#xff1a;当Claude遇上Codex&#xff0c;双引擎驱动的代码生成新范式最近在GitHub上看到一个挺有意思的项目&#xff0c;叫claude-codex-duo。光看名字&#xff0c;你大概就能猜到它的核心玩法——把Anthropic的Claude和OpenAI的Codex这两个顶级的AI模型给“撮合…...

告别‘不是内部或外部命令’:手把手配置MsBuild.exe环境变量与命令行编译实战

1. 为什么命令行找不到MsBuild.exe&#xff1f; 刚装完系统或者新配置开发环境时&#xff0c;很多朋友都会遇到这个经典错误&#xff1a;在命令行输入msbuild后&#xff0c;系统提示"不是内部或外部命令"。这就像你拿着钥匙却找不到锁孔一样让人抓狂。其实这个问题90…...

基于小安派-Eyes-DU的PWM呼吸灯实现:从环境搭建到代码烧录全解析

1. 项目概述上周&#xff0c;安信可开源硬件社区发布了一款名为“小安派-Eyes-DU”的新板子&#xff0c;我第一时间就入手了。作为一名嵌入式开发爱好者&#xff0c;拿到新板子后的第一件事&#xff0c;自然是想办法“点亮”它&#xff0c;看看它的能耐。官方资料里提到了一个亮…...