• 面试题38:数字在排序数组中出现的次数


    题目:统计一个数字在排序数组中出现的次数。

    解法:二分查找,算法复杂度为O(logN).

     1   int getFirstIndexOfK(vector<int>&data, int k)
     2   {
     3     int n = data.size();
     4     if (n == 0)
     5      return -1;
     6         int left = 0;
     7     int right = n-1;
     8         while (left <= right)
     9     {
    10          int middle = (left+right)/2;
    11      if (data[middle] < k)
    12        left = middle+1;
    13      else if (data[middle] > k)
    14        right = middle - 1;
    15      else
    16      {
    17        if (middle == 0 || (middle != 0 && data[middle-1] < k))
    18          return middle;
    19        else
    20          right = middle-1;
    21      }
    22    }
    23       return -1; 
    24  }
     1  1 int getLastIndexOfK(vector<int>&data, int k)
     2   {
     3     int n = data.size();
     4     if (n == 0)
     5      return -1;
     6         int left = 0;
     7     int right = n-1;
     8         while (left <= right)
     9     {
    10          int middle = (left+right)/2;
    11      if (data[middle] < k)
    12        left = middle+1;
    13      else if (data[middle] > k)
    14        right = middle - 1;
    15      else
    16      {
    17        if (middle == n-1 || (  data[middle+1] > k))
    18          return middle;
    19        else
    20          left = middle+1;
    21      }
    22    }
    23       return -1; 
    24  }
    int getNumberOfK(vector<int>&data, int k)
    {
         int number = 0;
        if (data.size()!=0)
       {
           int first = getFirstIndexOfK(data,k);
          int last = getLastIndexOfk(data,k);
          if (first > -1 && last > -1)
             number = last-first+1;  
        }  
        return number;
    }
  • 相关阅读:
    [转]OnKeyDown Numeric Validator CLIENT SIDE
    [转]ng-grid
    死锁
    MySQL中间层 Atlas
    构建高性能web之路------mysql读写分离实战
    springboot读写分离--temp
    MySQL数据库的同步配置+MySql读写分离
    JMX学习笔记(二)-Notification
    kafka之四:Kafka集群搭建
    Synchronized之四:Synchronized的可重入性
  • 原文地址:https://www.cnblogs.com/happygirl-zjj/p/4624770.html
Copyright © 2020-2023  润新知