天天看點

華為筆試題-明明的随機數

題目:

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的随機整數(N≤1000),

對于其中重複的數字,隻保留一個,把其餘相同的數去掉,不同的數對應着不同的學生的學号。

然後再把這些數從小到大排序,按照排好的順序去找同學做調查。

請你協助明明完成“去重”與“排序”的工作(同一個測試用例裡可能會有多組資料,希望大家能正确處理)。

Input Param

n 輸入随機數的個數

inputArray n個随機整數組成的數組

Return Value

OutputArray 輸出處理後的随機整數

注:測試用例保證輸入參數的正确性,答題者無需驗證。測試用例不止一組。

#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;

int main()
{
	int totol, num;
	//vector<int> ivec;//不能在此定義,不然上次循環進來的值會影響這次的
	while (cin >> totol)
	{
		vector<int> ivec;//一定要在此定義,這樣每次的值都是初始化後的
		for (int i = 0; i<totol; ++i)
		{
			cin >> num;
			//如果沒有找到,則添加
			if (find(ivec.begin(), ivec.end(), num) == ivec.end())
			{
				ivec.push_back(num);
			}
		}
		sort(ivec.begin(), ivec.end());
		for (int i = 0; i<ivec.size(); ++i)
		{
			cout << ivec[i] << endl;
		}
	}
	return 0;
}