C++ & 算法基础学习【day01-01】

#include 
#include 
using namespace std;

/* 题目类型:二分搜索
给定有 n 个元素的升序整型数组 nums 和⼀个⽬标值 target,写⼀个函数搜索 nums 中的 target,如果⽬
标值存在返回下标,否则返回 -1。
*/

int Solution(vector<int> &nums, int target)
{
    int left = 0;
    int right = nums.size() - 1;
    while (left <= right)
    {
        int mid = (right - left) / 2 + left;
        if (nums[mid] == target)
            return mid;
        else if (nums[mid] < target)
            left = mid + 1; // 注意
        else
            right = mid - 1; // 注意
    };
    return -1;
}
int main()
{
    cout << "输出结果为:" << endl;
    int target = 9;
    vector<int> nums{-1, 0, 3, 5, 9, 12};
    int res = Solution(nums, target);
    if (res > -1)
    {
        cout << "target"
             << " 的下标为:" << Solution(nums, target) << endl;
    }
    else
    {
        cout << "target在数组中不存在!" << endl;
    }
    return 0;
}

你可能感兴趣的:(算法,c++,学习)