(查找)找到数组中的指定值得起始和结束位置
Posted Kobe10
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(查找)找到数组中的指定值得起始和结束位置相关的知识,希望对你有一定的参考价值。
- 题目:
给定整数的排序数组,找到给定目标值的起始和结束位置。 您的算法的运行时复杂性必须是O(log n)的顺序。 如果在数组中找不到目标,则返回[-1,-1]。 例如, 给定[5,7,7,8,8,10]和目标值8, return [3,4]。
- 思路:这个题目直接使用容器存储出现查找元素的位置。取出第一个和最后一个即可。
- 代码
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; } };
以上是关于(查找)找到数组中的指定值得起始和结束位置的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp [bs] [array]搜索范围。给定排序的整数数组,找到给定目标值的起始位置和结束位置。 O(log n)