题解 | #二分查找-II#
二分查找-II
http://www.nowcoder.com/questionTerminal/4f470d1d3b734f8aaf2afb014185b395
NC105. 二分查找II
C
int search(int* nums, int numsLen, int target ) { int left = 0, right = numsLen - 1; while (left <= right) { int mid = (left + right) / 2; if (nums[mid] == target) { while (nums[mid] == nums[mid-1]) //找到 nums 中的第一个出现的target mid--; return mid; } else if (nums[mid] > target) right = mid - 1; else left = mid + 1; } return -1; }