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

Posted Kobe10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(查找)找到数组中的指定值得起始和结束位置相关的知识,希望对你有一定的参考价值。

  • 题目:
    给定整数的排序数组,找到给定目标值的起始和结束位置。
    
    您的算法的运行时复杂性必须是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;
        }
    };

     

以上是关于(查找)找到数组中的指定值得起始和结束位置的主要内容,如果未能解决你的问题,请参考以下文章

常见算法之二分查找

二分法查找(数组)php

php实现二分查找法

c_cpp [bs] [array]搜索范围。给定排序的整数数组,找到给定目标值的起始位置和结束位置。 O(log n)

在字符串中查找特定单词的位置

Jsの练习-数组常用方法 -slice()