
#define N 100000
int main(){
int bet[N]={0},used[N/2]={0},n;
while(scanf("%d", &n) != EOF && n <= 100000){
int i,j,t,rear=0;
for(i=0;i<n;i++){
scanf("%d", &bet[i]);
}
int isbreak = 0;
for(i=0;i<n;i++){
for(t=0;t<rear;t++){
if(bet[i] == used[t]) break;
}
if(t==rear){
isbreak = 1;
for(j=i+1;j<n;j++){
if(bet[i] == bet[j]){
used[rear++] = bet[i];
isbreak = 0;
break;
}
}
if(isbreak) break;
}
}
if(i == n) {
printf("None");
} else {
printf("%d", bet[i]);
}
}
return 0;
}
设立缓存区,超时。
#define N 100000
int main(){
int bet[N]={0},n;
while(scanf("%d", &n) != EOF && n <= 100000){
int i,j,isbreak=0;
for(i=0;i<n;i++){
scanf("%d", &bet[i]);
}
for(i=0;i<n;i++){
if(bet[i] != 0) {
isbreak = 1;
for(j=i+1;j<n;j++){
if(bet[i] == bet[j]){
bet[j] = 0;
isbreak = 0;
}
}
}
if(isbreak) break;
}
if(i == n) {
printf("None");
} else {
printf("%d", bet[i]);
}
}
return 0;
}
一般算法,超时。
#include<stdio.h>
#define N 100001
#define M 10001
int main(){
int bet[N]={0},people[M]={0},n;
while(scanf("%d", &n) != EOF && n <= 100000){
int i,j;
for(i=0;i<n;i++){
scanf("%d", &bet[i]);
}
for(i=0;i<n;i++){
people[bet[i]]++;
}
for(j=0;j<n;j++){
if(people[bet[j]] == 1){
break;
}
}
if(j == n) {
printf("None");
} else {
printf("%d", bet[j]);
}
}
return 0;
}
相当于建立hash表,ok
本文探讨了在数据处理过程中,通过改进缓存策略和利用哈希表等数据结构优化算法,有效提升处理速度和效率的方法。具体展示了两种实现方式,并通过实例分析了其在实际应用中的效果。
461

被折叠的 条评论
为什么被折叠?



