从今天开始刷中等难度的题目了,第一道就这么给力?自己写半天的二分查找,还不如直接暴力。也是,想要分部二分,也要遍历,还不如直接全遍历了。懒得写函数了,就直接复制粘贴。
class Solution {
public boolean search(int[] nums, int target) {
for(int i:nums){
if(i==target)
return true;
}
return false;
}
}
class Solution {
public boolean search(int[] nums, int target) {
int len = nums.length;
if(len==0)return false;
int low1 = 0, low2 = t+1, high1 = t, high2 = len-1;
int t = 0;
for(int i=0; i<len-1; i++){
if(nums[i]<nums[i+1])
t=i;
}
while(low1<=high1){
int mid = low1 + (high1 - low1) / 2;
if(nums[mid]<target){
low1 = mid+1;
}else if(nums[mid]>target){
high1 = mid -1;
}else
return true;
}
while(low2<=high2){
int mid = low2 + (high2 - low2) / 2;
if(nums[mid]<target){
low2 = mid+1;
}else if(nums[mid]>target){
high2 = mid -1;
}else
return true;
}
return false;
}
}