leetcode-704-二分查找
[博客链接]
[题目链接]
[github地址]
[用rand7实现rand10]
思路一:二分查找-原生函数
public int search() {
return Arrays.binarySearch(nums, target) >= 0 ? Arrays.binarySearch(nums, target) : -1;
}
- 时间复杂度O(lgn)
- 空间复杂度O(1)
思路一:手写二分查找
public int search(int[] nums, int target) {
int l = 0, r = nums.length - 1;
while (l < r) {
int mid = l + r >> 1;
if (nums[mid] < target) {
l = mid + 1;
} else {
r = mid;
}
}
return nums[l] == target ? l : -1;
}
- 时间复杂度O(lgn)
- 空间复杂度O(1)