力扣面试150题刷题分享

7 阅读1分钟

合并两个有序数组【三个尾指针往前】

leetcode.cn/problems/me…

输入: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出: [1,2,2,3,5,6]
解释: 需要合并 [1,2,3] 和 [2,5,6] 。
合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。

时间O(m+n),空间O(1)

image.png

移除元素

leetcode.cn/problems/re…

一维动态规划

爬楼梯

leetcode.cn/problems/cl…

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

输入: n = 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 12. 1 阶 + 23. 2 阶 + 1

第 n 阶的爬法 = 第 n-1 阶的爬法 + 第 n-2 阶的爬法,状态转移方程为:f(n) = f(n - 1) + f(n - 2)

image.png