题解 | #二分查找-II#

二分查找-II

http://www.nowcoder.com/practice/4f470d1d3b734f8aaf2afb014185b395

二分查找,多了判断第一个target的返回下标

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 如果目标值存在返回下标,否则返回 -1
 * @param nums int整型一维数组 
 * @param numsLen int nums数组长度
 * @param target int整型 
 * @return int整型
 */
int search(int* nums, int numsLen, int target ) {
    int left=0,right=numsLen-1;
    int mid;
    while(left<=right){
        mid=left+(right-left)/2;
        if(target>nums[mid]){
            left++;
        }
        else if(target<nums[mid])
        {
            right--;
        }
        else{
            while(nums[mid]==nums[mid-1]){
                mid--;
            }
            return mid;
        }
    }
    return -1;
}
全部评论

相关推荐

点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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