萌新如何学好动态规划

如大家所了解的,​动态规划问题一直是大厂面试时最频繁出现的算法题,主要原因在于此类问题灵活度高,思维难度大,没有很明显的套路做法。

问题分析

首先思考最暴力的解法。

枚举所有区间,暴力累加区间中宝石的价值,最后选一个价值最大的区间。时间复杂度

显然有些无法接受,因此想想有没有办法优化,比如优化掉暴力累加的部分。

优化 1.0

仔细思考不难发现,我们可以枚举区间右端点,然后固定右端点,左端点不断向左移动,边移动边累加,就可以将时间复杂度优化到 。

例如我们固定右端点是 3,那么左端点就从 3 移动到 1,边移动边累加答案,就可以在移动过程中计算出区间【3,3】、【2,3】 、【1,3】 的答案了。因此枚举所有区间右端点,即可在 时间复杂度内找到答案。

但是 时间还是有些过高了,因此思考有没有办法继续优化呢?

相关推荐
listhi5201 小时前
压缩感知信号重构的块稀疏贝叶斯学习(BSBL)算法:原理、实现与应用
学习·算法·重构
摸个小yu1 小时前
【力扣LeetCode热题h100】哈希、双指针、滑动窗口
算法·leetcode·哈希算法
充值修改昵称2 小时前
数据结构基础:B+树如何优化数据库性能
数据结构·b树·python·算法
Cinema KI2 小时前
一键定位,哈希桶的极速魔法
数据结构·c++·算法·哈希算法
曾几何时`2 小时前
二分查找(九)2300. 咒语和药水的成功对数
数据结构·算法
We་ct2 小时前
LeetCode 12. 整数转罗马数字:从逐位实现到规则复用优化
前端·算法·leetcode·typescript
绿算技术2 小时前
重塑智算存储范式:绿算技术NVMe-oF芯片解决方案全景剖析
人工智能·算法·gpu算力
sin_hielo2 小时前
leetcode 3510
数据结构·算法·leetcode
Anastasiozzzz3 小时前
力扣hot100 20.有效的括号 解析
java·算法·面试·力扣
CrazyClaz3 小时前
负载均衡算法
算法·负载均衡