/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @param target int整型 * @return int整型 */ //元素升序的、无重复数字的整型数组 nums 和一个目标值 target /* 1.确定已知量:一个数组、数组长度、需要查找的元素 2.确定2个指针low和high分别指向数组下标为0的元素和数组下标为数组长度-1的元素。 3.while循环判断low是否小于等于high. 4.如果条件为真, ①进入循环体内,令mid=(low+high)/2; ②判断数组下标为mid的元素(也就是数组中间元素)是否大于需要查找的元素。 如果条件为真,则令指针high=mid-1; ③如果条件为假,则接着判断数组下标为mid的元素(也就是数组中间元素)是否等于需要查找的元素;如果条件为真,则返回mid.如果条件为假,则令指针low=mid+1; ④.如果条件为假,退出循环,返回-1(找不到该元素); */ int search(int* nums, int numsLen, int target ) { // write code here int low = 0; int high = numsLen - 1; int mid; while (low <= high) { mid = (low + high) / 2; if (nums[mid] > target) { high = mid - 1; } else if (nums[mid] < target) { low = mid + 1; } else return mid; } return -1; }