题解 | #牛群的位置排序#

牛群的位置排序

https://www.nowcoder.com/practice/87c81fa27b9a45c49ed56650dfa6f51b

题目考察的知识点:二分查找

题目解答方法的文字分析:先用二分法查找,找出target的大概位置,也就是target可能在left,right,right+1这三个位置,然后再仔细判断target的位置。

本题解析所用的编程语言:c++

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

            int mid = (left + right) / 2;
            if (labels[mid] < target)
                left = mid;
            else if (labels[mid] > target)
                right = mid;
            else 
                return mid;

        }
        if (labels[right] < target && right == labels.size() - 1)
            return right + 1;
        else if (labels[right] >= target && labels[left] < target)
            return right;
        else  
            return left;
            
            
    }
};

全部评论

相关推荐

26牛牛不会梦到感谢信:羡慕离职了还能吃吗现在就赶回去
点赞 评论 收藏
分享
明天不下雨了:我靠2022了都去字节了还什么读研我教你****:你好,本人985电子科大在读研一,本科西南大学(211)我在字节跳动实习过。对您的岗位很感兴趣,希望获得一次投递机会。
点赞 评论 收藏
分享
今天 11:10
武汉纺织大学 C++
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务