力扣 704 二分查找
题目
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/binary-search
示例
代码
public int Search(int[] nums, int target)
{
int low = 0, high = nums.Length - 1;
while (low <= high)
{
int mid = (high + low) / 2;
if (target < nums[mid])
{
high = mid - 1;
}
else if (target > nums[mid])
{
low = mid + 1;
}
else if (target == nums[mid])
{
return mid;
}
}
return -1;
}
总结
显而易见,只是一个常规的二分查找的应用,没有任何变动,直接用就行。
左边 low,
右边 high,
中间 mid;
target和索引为mid的数比较,变动low和high的值。
找到了就返回mid,没找到就在最后返回-1.