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

牛群的位置排序

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

知识点

二分

思路

已知数组升序,故对于target来说,可以使用二分查找插入的位置,此位置的数要么为target,要么是小于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 l=0;
        int r=labels.size()-1;
        int mid;
        if(labels[r]<target)return r+1;
        if(labels[0]>target)return 0;
        while(l<r)
        {   mid=(l+r)>>1;
            if(labels[mid]<target)
            {
                l=mid+1;
            }
            else if(labels[mid]>=target)
            {
                r=mid;
            }
            else return mid;
        }
        return l;



    }
};
全部评论

相关推荐

萧索X:写篮球联赛干嘛,陪老板打篮球吗。还有实习经历要写自己所在岗位具体完成什么工作,自己的任务具体完成了什么需求,给公司带来了哪些量化增长
点赞 评论 收藏
分享
2025-11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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