c#在数组中查找元素

2025-01-04 18:05:14
推荐回答(4个)
回答1:

数组为a
for(i=0;i<1000;i++)
{for(j=i+1;j<1000;j++)

{if(a[i]==a[j])
break;
else
continue;}
}
messagebox.show("重复值为a[i]");

回答2:

把此数组加总,然后减去 1+2+...+999 的和.就是该数字.

回答3:

用空间换时间吧

生成一个int count[999]数组,count[i-1]保存的是数据i的出现次数
扫描目标数组的时候,如果count[i-1] == 0 的话,count[i-1]加1,否则直接返回i,只扫描一次,时间复杂度是1000

int GetRepeat(int[] arr)
{
int[] count= new int[999]; //数组每一个数初始化为0
foreach(int i in arr)
{
if(count[i-1] == 0) count[i-1]++;
else if(count[i-1] == 1) return i;
}

return -1; //找不到返回-1
}

回答4:

3楼的思路很有意思,但是此题考察的不是假发运算,
一楼正解(可以把else continue去掉,没必要);