(分别是 2 和 5),将降序序列按照升序排列(分别是 [1,2,3] 和 [3,7]);第二步,在刚刚排好的升序序列中,找到第一个比数字 num (分别是 2 和 5)大的数字,进行交换即可(分别是...(3)对于 [6,5,4,3,2,1] 这种,在从后往前遍历数组时,找到了完整的降序序列,因此没有比该排列大的下一排列了。这时只需要 nums.reverse(),返回最小排列即可。...无论是对降序序列按照升序序列排序还是交换两个数,都可以在原数组上进行,因此空间复杂度为 O(1),时间复杂度为 O(n^2)。当然,还可以使用二分查找的思想加快(2)中第二步的速度。...Find Peak Element
解题思路:
寻找峰值。给一个数组,峰值元素是指其值大于左右相邻值的元素,峰值可能有多个,找到其中一个峰值元素对应索引。假设数组前后均为负无穷。....,4,5] 这种,则可以直接返回 0 或者 len(nums) - 1,因为数组前后均为负无穷, 6 或者 5 就可以视为峰值。
时间复杂度就是二分查找的复杂度,即 O(log n)。