查找目标函数,最简单的写法是
public class Solution {
public int search(int[] nums, int target) {
if(nums.length == 0) return -1;
for(int i = 0; i < nums.length; i++) {
if(nums[i] == target) {
return i;
}
}
return -1;
}
}
一开始想用二分查找,但是不知道顺序是否是乱序,没用,但是时间慢。
没看到sort,所以可以用二分查找法
public int search(int[] nums, int target) {
int start = 0;
int end = nums.length - 1;
while (start <= end){
int mid = (start + end) / 2;
if (nums[mid] == target)
return mid;
if (nums[start] <= nums[mid]){
if (target < nums[mid] && target >= nums[start])
end = mid - 1;
else
start = mid + 1;
}
if (nums[mid] <= nums[end]){
if (target > nums[mid] && target <= nums[end])
start = mid + 1;
else
end = mid - 1;
}
}
return -1;
}