题目要求:
从一堆给定的大量的无序不重复数中寻找某一指定数在数组中出现的位置;
思考方向:
通过空间换时间的方法,将每个数组中的元素放入一个map容器中,将数组中的值作为key,下标作为value即可;
代码:
#include<iostream>
#include<vector>
#include<map>
#include<cmath>
#include<ctime>
using namespace std;
template<int SIZE = 10000>
void generateArray(vector<int>& vec)
{
srand( (unsigned int)time(NULL) );
bool isExit[SIZE] = {
false};
for (int i = 0; i < SIZE; ++i)
{
int num = rand() % SIZE;
if (!isExit[num])
{
isExit[num] = true;
vec.push_back(num);
}