數組有N+M個數字, 數字的范圍為1 ... N, 打印重復的元素, 要求O(M + N), 不
可以用額外的空間。
代碼:
private
int[] arr = {
8,
5,
7,
6,
4,
2,
6,
8,
9,
3,
1,
6,
4,
2,
1,
7};
private void button1_Click( object sender, EventArgs e)
{
foreach ( int t in arr)
{
if(arr[Math.Abs(t)]> 0)
{
arr[Math.Abs(t)] = -arr[Math.Abs(t)];
}
else
{
MessageBox.Show(Math.Abs(t).ToString());
}
}
}
private void button1_Click( object sender, EventArgs e)
{
foreach ( int t in arr)
{
if(arr[Math.Abs(t)]> 0)
{
arr[Math.Abs(t)] = -arr[Math.Abs(t)];
}
else
{
MessageBox.Show(Math.Abs(t).ToString());
}
}
}