mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
Merge pull request #683 from KingArthur0205/master
添加 0704.二分查找.md C语言版本
This commit is contained in:
@ -374,7 +374,7 @@ func search(nums: [Int], target: Int) -> Int {
|
||||
} else if target > nums[middle] {
|
||||
// 当目标在区间右侧,就需要更新左边的边界值,新区间为[middle + 1, right]
|
||||
left = middle + 1
|
||||
} else {
|
||||
} else {
|
||||
// 当目标就是在中间,则返回中间值的下标
|
||||
return middle
|
||||
}
|
||||
@ -450,6 +450,33 @@ impl Solution {
|
||||
}
|
||||
```
|
||||
|
||||
**C:**
|
||||
```c
|
||||
int search(int* nums, int numsSize, int target){
|
||||
int left = 0;
|
||||
int right = numsSize-1;
|
||||
int middle = 0;
|
||||
//若left小于等于right,说明区间中元素不为0
|
||||
while(left<=right) {
|
||||
//更新查找下标middle的值
|
||||
middle = (left+right)/2;
|
||||
//此时target可能会在[left,middle-1]区间中
|
||||
if(nums[middle] > target) {
|
||||
right = middle-1;
|
||||
}
|
||||
//此时target可能会在[middle+1,right]区间中
|
||||
else if(nums[middle] < target) {
|
||||
left = middle+1;
|
||||
}
|
||||
//当前下标元素等于target值时,返回middle
|
||||
else if(nums[middle] == target){
|
||||
return middle;
|
||||
}
|
||||
}
|
||||
//若未找到target元素,返回-1
|
||||
return -1;
|
||||
}
|
||||
```
|
||||
|
||||
-----------------------
|
||||
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
||||
|
Reference in New Issue
Block a user