思路
普通的二分法查找,需要注意题目要求从左到右,返回第一个为target的下标
代码*(JAVA)
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 如果目标值存在返回下标,否则返回 -1 * @param nums int整型一维数组 * @param target int整型 * @return int整型 */ public int search (int[] nums, int target) { int low = 0; int high = nums.length-1; int mid = 0; while(low <= high){ mid = low+ (high- low) / 2; if(nums[mid] == target){ while(mid != 0 &&(nums[mid-1] == nums[mid])){ mid--; } return mid; } else if(nums[mid] > target){ high = mid - 1; } else { low = mid + 1; } } return -1; } }