题目:
数组有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());
}
}
}