首页 > 代码库 > (查找)找到数组中的指定值得起始和结束位置

(查找)找到数组中的指定值得起始和结束位置

  • 题目:
    给定整数的排序数组,找到给定目标值的起始和结束位置。
    
    您的算法的运行时复杂性必须是O(log n)的顺序。
    
    如果在数组中找不到目标,则返回[-1,-1]。
    
    例如,
    给定[5,7,7,8,8,10]和目标值8,
    return [34]。

     

  • 思路:这个题目直接使用容器存储出现查找元素的位置。取出第一个和最后一个即可。
  • 代码
    class Solution {
    public:
        vector<int> searchRange(int A[], int n, int target) {
            vector<int> res;
            vector<int> v;
            int first = 0, last = 0;
            for (int i=0; i<n;i ++){
                if (target == A[i]){
                    res.push_back(i);
                }
            }
            if (res.size() == 0){
                first = -1;
                last = -1;
            }else if (res.size() == 1){
                first = res[0];
                last = res[0];
            }
            else{
                first = res.front();
                last = res[res.size()-1];
            }
            v.push_back(first);
            v.push_back(last);
            return v;
        }
    };

     

(查找)找到数组中的指定值得起始和结束位置