用map找出数组中的重复数字 C++代码

// T3 找出重复数字--No2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<map>
#include<iostream>
#include<string>

using namespace std;
//用map代替哈希表找出数组中重复的数字

int FindRepeated(int data[],int length)   
{
    map<int, int >arrMap;
    map<int, int>::iterator iter;
    arrMap[data[0]] = 1;
    //cout << sizeof(data) << endl;//当数组作为函数参数进行传递的时候,数组就自动退化炒年糕同类型的指针,所以sizeof(data)值为4(32为机器)
    for (int  i = 1; i < length; i++)
    {
        iter = arrMap.find(data[i]);
        if (iter!=arrMap.end())
        {
            return data[i];
        }
        else
        {
            arrMap[data[i]] = i;
        }
    }
    return -1;  //代表没有找到重复的
}


int _tmain(int argc, _TCHAR* argv[])
{
    int data[] = { 1, 2, 13, 101, 22, 56, 39 };
    cout << sizeof(data)/sizeof(int) << endl;
    cout << FindRepeated(data, 7) << endl;
    return 0;
}

发布了17 篇原创文章 · 获赞 18 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/baidu_30594023/article/details/81914551
今日推荐