题解 | #二分查找-I#

二分查找-I

https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @param target int整型 
     * @return int整型
     */
    int search(vector<int>& nums, int target) {
        // write code here
        int tot = nums.size();
        int start = 0;

        if (nums.size() == 0) return -1;
        if (target == nums[0]) return 0;
        if (target ==nums[tot - 1]) return (tot - 1);
        if (nums[tot - 1] == nums[0]) return -1;
        if (tot - start < 2) return -1;

       // int idx = tot * (target - nums[0]) / (nums[tot - 1] - nums[0]);
        int idx = (start  + tot) >> 1;
  
        while (start < tot)
        {
            if (nums[idx] == target) return idx;

            idx = (idx  + tot) >> 1;

            if (nums[idx] < target)
            {
                start = idx + 1;
                
            }
            else 
            {
                tot = idx - 1;
            }
        }

        return -1;
    }
};

全部评论

相关推荐

见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
练习生懒羊羊:开飞机把这个公司创飞吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务