leetcode 704题 [二分查找binarysearch]
题目要求:
输入:数组,目标数据
输出:目标数据在数组中的下标值
前提是该数组已经有序且没有重复元素
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size() - 1;
while(left <= right)
{
int middle = (left + right) / 2;
if(nums[middle] == target)
return middle;
else if(nums[middle] < target)
left = middle + 1;
else right = middle - 1;
}
return -1;
}
};
vs代码调试用例
#include <iostream>
using namespace std;
#include <vector>
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size() - 1;
while (left <= right)
{
int middle = (left + right) / 2;
if (nums[middle] == target)
return middle;
else if (nums[middle] <target)
left = middle + 1;
else right = middle - 1;
}
return -1;
}
};
int main(void)
{
vector <int> num={4,2,6,29,33,41,75,90};
int target = 75;
Solution s;
cout << s.search(num, target);
}