【算法】查找第一个没有重复的数组元素

第一个没有重复的数组元素

很直接使用两重循环,内部循环检查是否存在多次。

    for (int i = 0; i < arrays.size(); ++i)
    {
        int j = 0;
        for (; j < arrays.size(); ++j)
        {
            if (i != j && arrays[i] == arrays[j])
            {
                break;
            }
        }
        if (j == arrays.size()) //找到最后一个也没找到
        {
            return arrays[i];
        }
    }

简单粗暴,但是我们有一个折中的办法保证时间复杂度为O(n),但是需要辅助的空间复杂度O(n)。

    std::unordered_map<int, int> tempmap;
    for (auto value : arrays)
    {
        tempmap[value]++;
    }
    for (auto value : arrays)
    {
        if (tempmap[value] == 1)
        {
            return value;
        }
    }
    原文作者:查找算法
    原文地址: https://blog.csdn.net/gx864102252/article/details/82597509
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞