首页 > 其他 > 详细

leetcode-剑指53-I

时间:2021-01-25 11:35:28      阅读:23      评论:0      收藏:0      [点我收藏+]

language: C

address

// 先用二分法找到第一个,如果找不到,返回0个,找得到,再以此为起点左右计算数量
int search(int* nums, int numsSize, int target){
    int low = 0,high = numsSize-1, count = 0,mid;

    while(low<=high){
        mid =(low +high)/2;
        if(nums[mid]==target){
            count++;
            break;
        }else if(nums[mid]>target){
            high = mid-1;
        }else{
            low = mid +1;
        }
    }
    if(count == 0)
        return 0;
    low = mid+1;  //
    mid--;
    while((mid>=0)&&(nums[mid]==target)){
        count++;
        mid--;
    }
    while((low<numsSize)&&(nums[low]==target)){
        count++;
        low++;
    }
    return count;
}

leetcode-剑指53-I

原文:https://www.cnblogs.com/gallien/p/14323641.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!