原文链接:
[1]704二分查找
Problem: 704. 二分查找
思路
二分法
解题方法
左闭右闭
左闭右开
复杂度
- 时间复杂度:
O ( l o g n ) O(log~n~) O(log n )
- 空间复杂度:
O ( 1 ) O(1) O(1)
Code
//左闭右闭
class Solution {
public int search(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while(left <= right){
int mid = (left + right)/2;
if (target == nums[mid]){
return mid;
} else if (target > nums[mid]) {
left = mid + 1;
}else{
right = mid -1;
}
}
return -1;
}
}
//左闭右开
class Solution {
public int search(int[] nums, int target) {
int left = 0, right = nums.length;
while(left < right){
int mid = (left + right)/2;
if (target == nums[mid]){
return mid;
} else if (target > nums[mid]) {
left = mid + 1;
}else{
right = mid;
}
}
return -1;
}
}