D

当前:LC300 · 最长上坡路线 · 首次出现于 Day 38 · 路径:顶栏「56天打卡」→ 点击 LC 题号 → 逐题动画

LC300

最长上坡路线

跳平台游戏 · 基础 DP可视化:动态规划表

你面前有一排数字平台。你可以从左往右跳,可以跳过平台,但不能回头。每次只能跳到更高的平台。问题是:最长能连续跳几个平台?

可以跳过平台,但不能回头;只能跳到更高的平台。

基础 DP 时间 O(n²)基础 DP 空间 O(n)进阶二分 O(n log n) / O(n)
题目1 / 61
题目与输入建立输入、目标与算法心智
正在加载上坡路线...
当前发生了什么

你面前有一排数字平台。你可以从左往右跳,可以跳过平台,但不能回头。每次只能跳到更高的平台。问题是:最长能连续跳几个平台?

机器状态

dp 表、当前平台 i、扫描前驱 j。

为什么正确

dp[i]=停在第 i 个平台时的最长上坡路线长度;从所有更低的前驱里选路线最长的那个。

不变量

dp[i]=max(dp[j]+1),其中 j<i 且 nums[j]<nums[i]。

面试怎么说

基础 O(n²) DP:dp[i] 表示以 i 结尾的 LIS;进阶 O(n log n) 用 tails 数组。

人类输入

你面前有一排数字平台。你可以从左往右跳,可以跳过平台,但不能回头。每次只能跳到更高的平台。问题是:最长能连续跳几个平台?

机制

dp[i]=停在第 i 个平台时的最长上坡路线长度;从所有更低的前驱里选路线最长的那个。

机器状态

dp 表、当前平台 i、扫描前驱 j。

可观察结果

最长上坡路线长度 = 4(2→5→7→101 或 2→5→7→18)。

不变量
  • · dp[i]=max(dp[j]+1),其中 j<i 且 nums[j]<nums[i]。
常见误区
  • · 答案取 max(dp),不是 dp[n-1]。
  • · 进阶牌堆法 O(n log n) 见页面折叠区,tails 不一定是真实路线。
迁移练习
  • · LC674 连续递增
  • · LC354 俄包
面试怎么答

基础 O(n²) DP:dp[i] 表示以 i 结尾的 LIS;进阶 O(n log n) 用 tails 数组。