问题描述:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
示例:
示例 1:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
示例 2:
输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1
上代码,拿去即可运行:
package com.onlyqi.test03.erfen;
/**
* @author
* @date 2022/7/11 16:38
* @description
*/
public class Test01 {
public static void main(String[] args) {
Integer[] array={1,4,7,9,22,66};
System.out.println("============="+erFenTest(array,9));
}
public static Integer erFenTest(Integer[] array,Integer target){
Integer start=0;
Integer end=array.length-1;
while (start<=end){
Integer prov=(start+end)/2;
if(array[prov]==target){
return prov;
}
if(array[prov]>target){
end=prov-1;
}else {
start=prov+1;
}
}
return -1;
}
}
我要刷300道算法题,第102道