题目 最先重复出现
依次输入n个正整数,求最先出现重复数字的数的一对位置。
输入格式
第一行,一个整数n,1<=n<=50000。
第二行,n个正整数,空格分开,每个正整数的范围[1,1000000]。
输出格式
两个整数,分别表示最先出现重复数字的起始和结束位置。
输入/输出例子
输入:
10
23 4 2 10 5 6 7 8 2 4
输出:
3 9(2的下标)
题目 最先重复出现
依次输入n个正整数,求最先出现重复数字的数的一对位置。
输入格式
第一行,一个整数n,1<=n<=50000。
第二行,n个正整数,空格分开,每个正整数的范围[1,1000000]。
输出格式
两个整数,分别表示最先出现重复数字的起始和结束位置。
输入/输出例子
输入:
10
23 4 2 10 5 6 7 8 2 4
输出:
3 9(2的下标)
3 9(2的下标)???2的下标不是2,8吗?
暴力解题简单易懂
#include <iostream>
using namespace std;
int main()
{
long n, number;
cout<<"输入数组长度:";
cin>>n;
int arr[n]; //可以使用vector动态数组,这里从简
cout<< "以空格为分隔符输入数组:";
for (int i = 0; i < n; i++)
cin >> arr[i];
for (int j = 0; j <= n; j++) { //每输入一个数就判断是不是与前面输入的数字重复
for (int k = j+1; k <= n; k++) {
// cout<<"arr[j]:"<<arr[j]<<endl;
// cout<<"arr[k]:"<<arr[k]<<endl;
if (arr[j] == arr[k]) {
cout << "出现重复,下标为:" << j+1 << "和" << k << endl;
exit(0); // 退出程序
}
}
}
return 0;
}