0
点赞
收藏
分享

微信扫一扫

【Leetcode】【题库:算法入门】【704. 二分查找】

zhaoxj0217 2022-02-21 阅读 77
leetcode

【704. 二分查找】https://leetcode-cn.com/problems/binary-search/

我的解决方案:

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int start_idx = 0, end_idx = nums.size() - 1, mid_idx;
        int start_num, end_num, mid_num;
        while (start_idx <= end_idx) {
            start_num = nums[start_idx];
            end_num = nums[end_idx];
            if (start_num == target)
                return start_idx;
            else if (end_num == target)
                return end_idx;
            else {
                mid_idx = (start_idx + end_idx) / 2;
                mid_num = nums[mid_idx];
                if (mid_num == target)
                    return mid_idx;
                else if (mid_num < target) {
                    start_idx = mid_idx + 1;
                    end_idx = end_idx - 1;
                }
                else {
                    start_idx = start_idx + 1;
                    end_idx = mid_idx - 1;
                }   
            }
        }
        return -1;
    }
};
举报

相关推荐

0 条评论