首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C++中查找向量中每个索引处累积的唯一元素计数的有效方法

在C++中查找向量中每个索引处累积的唯一元素计数的有效方法是使用哈希表(unordered_map)来实现。哈希表是一种数据结构,可以将键值对存储在其中,并通过键快速查找对应的值。

以下是一种实现方法:

  1. 创建一个空的哈希表,用于存储元素和对应的计数。
  2. 遍历向量中的每个元素:
    • 如果哈希表中不存在该元素,则将该元素作为键插入哈希表,并将计数初始化为1。
    • 如果哈希表中已存在该元素,则将对应的计数加1。
  • 遍历向量中的每个索引:
    • 在哈希表中查找对应索引处的元素计数。
    • 将结果存储在一个新的向量中。

这种方法的时间复杂度为O(n),其中n是向量的大小。由于使用了哈希表,查找元素的时间复杂度为O(1)。

以下是一个示例代码:

代码语言:txt
复制
#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,其中存储了每个索引处累积的唯一元素计数。

请注意,以上示例代码中没有提及任何特定的云计算品牌商,如需了解腾讯云相关产品和产品介绍,建议访问腾讯云官方网站或咨询腾讯云的客服人员。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券