LeetCode 300. 最长递增子序列 300. 最长递增子序列解题思路视频讲解 动态规划 状态定义:dp[i] 表示以 nums[i] 结尾的最长递增子序列的长度。 转移方程:对于每个位置 i,遍历之前的所有位置 j ($0 \le j < i$): 如果 nums[i] > nums[j],说明 nums[i] 可以拼接在 nums[j] 后面,此时 dp[i] = Math.max(dp[i], dp[j] + 2026-02-08 LeetCode #动态规划
LeetCode 31. 下一个排列 31. 下一个排列解题思路回溯法首先从右往左遍历数组,找到第一个满足 nums[i] < nums[i + 1] 的位置 i 如果没有找到,则说明当前排列已经是最大的排列,此时直接将数组反转即可得到最小的排列; 如果找到了位置 i,则继续从右往左遍历数组,找到第一个满足 nums[j] > nums[i] 的位置 j,交换 nums[i] 和 nums[j] 的值,然后将位置 i + 2026-02-08 LeetCode #技巧
LeetCode 347. 前 K 个高频元素 347. 前 K 个高频元素解题思路构建小根堆,堆顶元素为当前出现频率最低的元素,当堆中元素个数超过 k 时,弹出堆顶元素。最后堆中剩余的 k 个元素即为出现频率最高的 k 个元素。 2026-02-08 LeetCode #堆