赞
踩
这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。
核心在于在给定的数组中查找给定的值,然后返回其索引即可。
1. 定义 left 和 right 指针,分别指向数组的左右区间。
2.找到待查找区间的中间点 mid。然后分三种情况讨论:
3. 当 left 与 right 错开时,说明整个区间都没有这个数,返回 -1。
- class Solution {
- public:
- int search(vector<int>& nums, int target) {
- int left = 0, right = nums.size() - 1;
- int mid;
- while(left <= right)
- {
- mid = (left + right)/2;
- if(nums[mid]>target)
- {
- right = mid - 1;
- }
- else if(nums[mid]<target)
- {
- left = mid + 1;
- }
- else
- {
- return mid;
- }
- }
- return -1;
- }
- };
嗯,就是这样啦,文章到这里就结束啦,真心感谢你花时间来读。
觉得有点收获的话,不妨给我点个赞吧!
如果发现文章有啥漏洞或错误的地方,欢迎私信我或者在评论里提醒一声~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。