int findFirsrKOfArray(vector nums, int k) {
if (nums.size() == 0) return -1;
if (nums[0] > k || nums[nums.size() - 1] < k)
return -1;
int left = 0;
int right = nums.size() - 1;
int mid = (left + right) / 2;
while (left < right) {
if (nums[mid] == k) {
if (mid == 0) break;
if (mid > left) {
if (nums[mid - 1] != k) break;
else {
right = mid - 1;
mid = (left + right) / 2;
}
}
}
else if (nums[mid] > k) {
right = mid - 1;
mid = (left + right) / 2;
}
else {
left = mid + 1;
mid = (left + right) / 2;
}
}
if (nums[mid] == k) return mid;
return -1;
}
剑指offer中确实有