在C++中查找向量中每个索引处累积的唯一元素计数的有效方法是使用哈希表(unordered_map)来实现。哈希表是一种数据结构,可以将键值对存储在其中,并通过键快速查找对应的值。
以下是一种实现方法:
这种方法的时间复杂度为O(n),其中n是向量的大小。由于使用了哈希表,查找元素的时间复杂度为O(1)。
以下是一个示例代码:
#include <iostream>
#include <vector>
#include <unordered_map>
std::vector<int> countUniqueElements(const std::vector<int>& nums) {
std::unordered_map<int, int> counts;
std::vector<int> result;
for (int num : nums) {
if (counts.find(num) == counts.end()) {
counts[num] = 1;
} else {
counts[num]++;
}
}
for (int i = 0; i < nums.size(); i++) {
result.push_back(counts[nums[i]]);
}
return result;
}
int main() {
std::vector<int> nums = {1, 2, 3, 2, 1, 3, 4, 5};
std::vector<int> result = countUniqueElements(nums);
for (int count : result) {
std::cout << count << " ";
}
std::cout << std::endl;
return 0;
}
该示例代码中,我们定义了一个名为countUniqueElements的函数,它接受一个整数向量nums作为输入,并返回一个新的整数向量result,其中存储了每个索引处累积的唯一元素计数。
请注意,以上示例代码中没有提及任何特定的云计算品牌商,如需了解腾讯云相关产品和产品介绍,建议访问腾讯云官方网站或咨询腾讯云的客服人员。
领取专属 10元无门槛券
手把手带您无忧上云