只会有两种重量的玩偶,最后找到数量为1的那种玩偶对应的序号。
#include <iostream>
#include<cstdio>
#include <algorithm>
using namespace std;
int a[1000];
int b[1000];
int main(){
int n,i,x;
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
b[i]=a[i];
}
sort(a,a+n);
if(a[0]!=a[1]){
x=a[0];
}
else if(a[n-2]!=a[n-1]){
x=a[n-1];
}
for(int k=0;k<n;k++){
if(b[k]==x){
cout<<k+1<<endl;
}
}
}
解法二:
作者:NotDeep
链接:https://www.nowcoder.com/discuss/76124?type=0&order=0&pos=39&page=1
来源:牛客网
#include <bits/stdc++.h>
using namespace std;
int w[1000005];
int main() {
int n;
int w1, w2, num1 = 0, num2 = 0, ans1, ans2;
scanf("%d", &n);
scanf("%d", &w[1]);
w1 = w[1];
num1 = 1;
ans1 = 1;
for(int i = 2; i <= n; i++) {
scanf("%d", &w[i]);
if(w[i] == w1) {
num1++;
ans1 = i;
} else {
w2 = w[i];
num2++;
ans2 = i;
}
}
if(num1 == 1)
printf("%d\n", ans1);
else
printf("%d\n", ans2);
return 0;
}