领扣(LeetCode)寻找旋转排序数组中的最小值 个人题解
生活随笔
收集整理的這篇文章主要介紹了
领扣(LeetCode)寻找旋转排序数组中的最小值 个人题解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
假設按照升序排序的數組在預先未知的某個點上進行了旋轉。
( 例如,數組?[0,1,2,4,5,6,7]?可能變為?[4,5,6,7,0,1,2]?)。
請找出其中最小的元素。
你可以假設數組中不存在重復元素。
示例 1:
輸入: [3,4,5,1,2] 輸出: 1示例 2:
輸入: [4,5,6,7,0,1,2] 輸出: 0
這題拿到手發現很簡單。。實際上也的確比較簡單。我以為會挖個什么坑在等我,但是只要使用遍歷數組的辦法找到下一個值比上一個小的地方,輸出后值就是答案。
這樣做的時間復雜度是O(n)。在LeetCode的評測中,使用JAVA打敗了62%的人,使用C打敗了100%的人 XD
同時,我以為是題目設置問題,去度娘了一下,發現了還有二分的做法,使用二分做法也完成了,時間復雜度是O(logn),但是在這題的測試環境中反而比遍歷的做法要慢。
附上兩種做法代碼:
?
轉載于:https://www.cnblogs.com/axiangcoding/p/9917557.html
總結
以上是生活随笔為你收集整理的领扣(LeetCode)寻找旋转排序数组中的最小值 个人题解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1. 各种虚拟机的发展历史
- 下一篇: 小程序导航组件navigator活学活用