一个长度为100的无序随机整型数组,且数值范围为[1-100],写一个算法,判断数组中是否有存在重复值。要求单循环实现.
解决方案 »
- 用FCKediter上传图片,在内容页显示图片是如何设置大小?
- OA系统登录慢
- gridview后台控件获取问题
- iis 更改访问地址
- 如何把动态创建的控件放到页面中指定的位置
- 有没有办法不在Cacth IE缓存里不保留下来?
- 如何使用<img src="xxx.aspx?id=1">这种形式来显示在xxx.aspx中动态设置的图片,在线等。
- DataGrid 用select * from 表绑定。没有内容时也要显示表头 该怎么办?谢谢
- SOS! 关于session变量!(在线,解决马上结帖!)
- 谁有Socket发邮件的代码,可以共享给我一份吗?谢谢
- asp.net 如何实现多语言化,比如中英文互换
- 为什么单机调试.net程序,没有找到浏览器(没有分了)
{
for(int i=0;i<arrayTmp.Length;++i)
{
if(arrayTmp[i] != arrayTmp[arrayTmp[i]-1])
{
int tmp = arrayTmp[i];
arrayTmp[arrayTmp[i]-1] = arrayTmp[i];
arrayTmp[i] = arrayTmp[arrayTmp[i]-1];
}
else
{
return "有重复";
}
}
return "没有重复";
}
{
arrayList dd = new ArrayList;
for(int i=0;i<arrayTmp.Length;++i)
{
if (dd.contains(arrayTmp[i]) == false )
{
dd.add(arrayTmp[i]) ;
}
}
if(dd.count == arrayTmp.Length)
{
return "没有重复";
}
else
{
return "重复";
}
}
{
try
{
hs.Add(i,"");
}
catch
{
"有重复"
}
}//大概这样
我的方法是在建一个数组。
例如,你要判断的数组是A,新建数组是B
循环A数组,在B中查找是否有和A[i]相同的值,如果没有就往B中插入A[i]的值,i++后在到B中查找是否有和A[i++]相同的值。呵呵,其实还是用到了多次循环。
bool[] mybl = new bool[100];
int [] myint;
//赋值
for(int i=0,int n=myint.Length;i<n;i++)
{
if(mybl[myint[i]])
{
MessageBox.show( "重复:"+myint[i]]);
break;
}
else
{
mybl[myint[i]]=true;
}
}
{
StringBuilder builder =new StringBuilder(";");
for(int i=0;i<=tmp.Length;i++)
{
if(builder.ToString().IndexOf(";"+tmp[i].ToString()+";")>0)
{
return true;
}
else
{
builder.Append(tmp[i].ToString()).Append(";");
}
}
return false;
}
{
int j=0;
int y[100]={0};
for(int i=0; i<100; i++)
{
j = x[i];
if(y[j] == 0)
{
y[j] = x[i];
}
else
Response.Write("有重复的数");
}
}
Dim i As Integer
Dim repeat As Boolean = False
Dim temp As String = ","
For i = 0 To UBound(arr)
temp = temp & arr(i) & ","
If InStr(temp, "," & arr(i) & ",") > 0 Then
repeat = True
Exit For
End If
Next
Return repeat
End Function
Dim i As Integer
Dim repeat As Boolean = False
Dim temp As String = ","
For i = 0 To UBound(arr)
If InStr(temp, "," & arr(i) & ",") > 0 Then
repeat = True
Exit For
End If
temp = temp & arr(i) & ","
Next
Return repeat
End Function
如下:
void JudgeRepeat(int A[])//A的长度100......
{
int B[100]={0};
int i=0;
for( i=0; i<100; i++)
{
B[A[i]]++;
if ( B[A[i]]>1 )
{
printf("有重复");
return;
}
}
printf("没有重复");
return;
}
更正如下:
void JudgeRepeat(int A[])//A的长度100......
{
int B[100]={0};
int i=0;
for( i=0; i<100; i++)
{
B[A[i]-1]++;
if ( B[A[i]-1]>1 )
{
printf("有重复");
return;
}
}
printf("没有重复");
return;
}
//下标0.......99
或者直接用hashtable
全加起来 不得 1-100的和 就是有重复的
---------------------------呵呵,我觉得如果是仅仅判断是否有重复的话用,这位兄弟的是最简单的了,
因为不重复的和只有一种情况,等于1-100的和.
Regex reg = new Regex(str);
Match m = reg.Match(Array);
if(m.Success)
{
return repeat;
}
else
return true;
{
int i=0;
int getValue=1;
while(getValue == arrayTmp[i])
{
++getValue;
++i;
}
getValue = arrayTmp[i];
while(arrayTmp[getValue-1] != getValue && i<100)
{
int tmp = arrayTmp[getValue-1];
arrayTmp[getValue-1] = getValue;
getValue = tmp;
++i;
}
if(i < 100)
{
return "有重复";
}
else
{
return "没有重复";
}
}