题解 | #二分查找-I#
二分查找-I
https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @param target int整型 * @return int整型 */ int search(int* nums, int numsLen, int target ) { // write code here int start = 0; int end = numsLen - 1; int mid; if(nums[start] == target){ return start; } if(nums[end] == target) { return end; } while (start + 1 < end){ mid = start + (end - start) / 2; printf("mid = %d, start = %d, end = %d\n", mid, start, end); printf("nums[%d] = %d \n", mid, nums[mid]); if(target == nums[mid]){ printf("target == nums[mid]\n"); return mid; }else if(target > nums[mid]){ printf("target > nums[mid]\n"); start = mid; }else { printf("target < nums[mid]\n"); end = mid; } } return -1; }