LeetCode 704.二分查找
先看题目,题目来源LeetCode 704.二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
非常简单易懂的题目,要求就是返回相应元素的下标。但这题的重点在于时间复杂度要实现O(log n),如果您以后一看到要求这样的时间复杂度,那么就应该下意识地反应到这可能是一道需求二分算法求解的题目。如果没有这样的要求,我们完全可以使用时间复杂度为O(n)的遍历数组。
因为比较简单,所以就不详细展开了,您如果不理解二分法可以根据下面代码的注释来辅助理解。
代码示例
1 | class Solution { |
此解法非唯一解,且不一定是最好的解法,如果您有更好的解法,欢迎在评论区中提出。
PS
:
经典的时间复杂度O(log n)除了二分法 还有 欧几里得算法 幂运算。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Joyer的博客!
评论