【LeetCode笔记】162. 寻找峰值(Java、二分、偏数学)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】162. 寻找峰值(Java、二分、偏数学)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 思路 && 代碼
- 1. 暴力法 O(n)
- 2. 二分法 O(logN)
- 二刷
打卡第十七天~
題目描述
- 難點在于 logN 復雜度
思路 && 代碼
1. 暴力法 O(n)
- 最簡單的做法,直接遍歷判斷即可。
2. 二分法 O(logN)
- 說到O(logN)的復雜度,那么基本上可以直接往二分走了。
- 注意題干中的nums[0] = nums[n] = -∞,這是我們可以二分的基礎。
- 二分思路:取mid,進行nums[mid]、nums[mid + 1] 對比,往較大處遞歸。
- leetcode 評論區看到這個例子很便于理解:爬山,因為左邊、右邊的終點都是山底
(題干-∞條件),因此當前往高處走的話,最終肯定能走到山峰。 - 來個例子 + 圖,方便理解:[1,2,1,3,5,6,4],注意趨勢線,保持左邊界上升、右邊界下降
二刷
- 爬山思路可給我留下太深印象了
總結
以上是生活随笔為你收集整理的【LeetCode笔记】162. 寻找峰值(Java、二分、偏数学)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php中文本设置随机颜色,php 产生随
- 下一篇: 【LeetCode笔记】117.填充每个