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

【LeetCode】 740. 删除并获得点数

这真是一道好题!这道题不仅考察了抽象思维,还考察了分析能力、化繁为简的能力,同时还有对基本功的考察。想顺利地做出这道题还挺不容易!我倒在了第一步与第二步:抽象思维和化繁为简。题目的要求稍微复杂一些,我就看不出问题的本质了。这一方面体现的是抽象能力的缺失,另一方面体现的则是拙劣的思考能力。

1. 题目

在这里插入图片描述

2. 思考

这道题给我的启示就是:多多动脑,理解题意,抽象化分析题目,然后化繁为简,用大脑的思考量去简化代码。本质上,这是一道动态规划题,但是找到动态规划之前,还需要两步预处理。

  • 第一步:得计算出每个数值对应的和具体是多少,把这个和写到一个数组中,这样就可以避免处理原数组中相同的数;
  • 第二步:如何破解题意信息?题目中说到如果选了值为i的数,那么就不能再选值为i-1,也不能选i+1的数了。我原本的处理方式是使用两个数组,分别记录从左到右和从右到左的最大值,最后把两个方向上的值合在一起得到最终的结果。但是这么做实在太绕了!

那有没有简单的方法呢?1, 2, 3, 4, ..., i-1, i, i+1, ...对于这么一串数字,在判断数值i时能得到的最大点数,其实就是相当于从dp[i-1]dp[i-2]中递推;有同学可能会问,题目中不是说dp[i]也依赖于dp[i+1]取不取吗?如果dp[i+1]取了,那么dp[i]就不能取了。虽然是这么个理儿,但是dp[i+1]的问题就留给(i+1)-1来避免。 这样就保证了对数i+1决策的时候,是对数i进行判断了的。
上面这一段的逻辑很重要,非常重要。以至于它决定了你能否很快的解出题来。

3. 代码

本次只做分析,代码略过,日后补上。

相关文章:

  • 万字长文|关于 OpenAI 接口开发你应该知道的一切
  • 视频号矩阵管理系统:短视频内容营销的智能助手
  • 【动态规划】动态规划一
  • k8s-第四节-Service
  • Foxit Reader(福昕阅读器)详细安装和使用教程
  • 视频提取字幕的软件有哪些?这5个高效又好用
  • 第三方支付公司的代付和入帐怎么解释?
  • 一些java中记忆的问题
  • NLP入门——前馈词袋分类模型的搭建、训练与预测
  • 【LeetCode】反转字符串中的单词
  • RabbitMQ入门教程(精细版二带图)
  • ruoyi实用性美化记录
  • 边缘计算赋能:高效固体废物管理的ARMxy工业计算机实践
  • 眼底图像生成新 SOTA:GeCA模拟生物细胞的演变过程
  • 性能测试:JMeter与Gatling的高级配置
  • 《Java编程思想》读书笔记-对象导论
  • java2019面试题北京
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java教程_软件开发基础
  • Promise面试题,控制异步流程
  • scrapy学习之路4(itemloder的使用)
  • swift基础之_对象 实例方法 对象方法。
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端面试题总结
  • 思考 CSS 架构
  • 《天龙八部3D》Unity技术方案揭秘
  • raise 与 raise ... from 的区别
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​​​【收录 Hello 算法】9.4 小结
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (6)设计一个TimeMap
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (多级缓存)多级缓存
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (一)SvelteKit教程:hello world
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • ./configure,make,make install的作用(转)
  • .net 7 上传文件踩坑
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net 无限分类
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET/C# 的字符串暂存池
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET4.0并行计算技术基础(1)
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • @Not - Empty-Null-Blank
  • []FET-430SIM508 研究日志 11.3.31