在 C++ 中查找 Set 中元素的索引
给定一个由N个整数和一个元素K组成的集合S ,任务是在集合S中找到元素K的索引。如果元素不存在于S中,则打印-1 。
例子:
Input: N = 5, S = {1, 2, 3, 4, 6} K = 6
Output: 5
Explanation: 6 is the 5th element in S.
Input: N = 5, S = {1, 2, 3, 4, 6}, K = 5
Output: -1
Explanation: 5 is not present in this set so we give output as -1.
解决方法:按照以下步骤解决问题:
- 初始化一个变量,比如index为1 ,以存储所需元素的索引。
- 遍历集合S并执行以下操作:
- 如果当前元素是K ,则打印Index并跳出循环。
- 否则,增加索引。
下面是上述方法的实现:
C++
// C++ program to implement
// the above approach
#include
using namespace std;
// Function to calculate index
// of element in a Set
int GetIndex(set S, int K)
{
// To store the index of K
int Index = 1;
// Traverse the Set
for (auto u : S) {
if (u == K)
return Index;
Index++;
}
// If K is not present
// in the set
return -1;
}
// Driver Code
int main()
{
// Input
set S;
S.insert(1);
S.insert(6);
S.insert(2);
S.insert(3);
S.insert(4);
int K = 6;
cout << GetIndex(S, K) << endl;
return 0;
}
输出:
5
时间复杂度:O(N)
辅助空间: O(1)