给定一个递增排序的数组,查找某个数字是否在数组中,如果在数组中,则返回该数字在数组中第一次出现的位置(从0开始);如果不在数组中,返回-1 。
不需要考虑给定的数组不是递增的情况。
务必使用二分查找的方式。
import java.util.*; public class Solution { /** * * @param arr int整型一维数组 * @param a int整型 要查找的数字 * @return int整型 */ public int binarySearch (int[] arr, int num) { // write code here if(arr.length<=0){ return -1; } int left =0; // 左脚标 int right =arr.length-1; // 右脚标 // 一直到left== right 时跳出循环 while(left<right){ int mid = (left+right)>>1; if(arr[mid]<num){ left=mid+1; }else{ right=mid; } } return arr[left]==num ? left:-1; } }