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

  2. 寻找峰值
    中等
    相关标签
    premium lock icon
    相关企业
    峰值元素是指其值严格大于左右相邻值的元素。

给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。

你可以假设 nums[-1] = nums[n] = -∞ 。

你必须实现时间复杂度为 O(log n) 的算法来解决此问题。

这个题没想出来,这里看了下答案,这个答案是真天才。
不过这些题目确实转化一下就有思路了,这里有对称性,因为你这个是峰值,所以沿着峰值是对称的
左边是严格上升,右边是严格下降,所以你只需要找到严格上升的就行了
同时看到logn,一眼就是二分
然后看,如果分成两半,要看的话应该就是严格递增了,如果什么的话,这个峰值在右边呢?
check mid < mid+1 递增的在右边,那右边一定有一个峰值,反之一定在左边
注意这里的二分也不太好想,这里是存在,刚好题目描述这种它是没有平坡的,所以可以这么弄。
感觉非常巧妙