我需要從數組中刪除重複的條目,但不能使用任何新的數據結構,同一個數組只能返回不同的元素。例如,如果我的數組是1,3,3,3,5,55,67,1
那麼結果應該是1,3,5,55,67
。從數組中刪除重複
我相信我已經解決了這個問題,但是我需要您的意見,看它是否是一個好的算法,或者如果我需要改變某些東西。
public void DeleteDuplicate(int[] array)
{
int l = 0;
int newPosition = array.Length -1;
for (int i = 0; i < array.Length; i++)
{
for (int j = i + 1; j < array.Length-l; j++)
{
if (array[i] == array[j])
{
int temp = array[j];
array[j] = array[newPosition];
array[newPosition] = temp;
newPosition--;
l++;
}
}
}
Array.Resize(ref array, array.Length - l);
}
是否允許以其他方式改變數組(如重新排序元素)?從你的例子中不清楚。如果答案是肯定的,那麼你可以做得更快。 – jamesdlin 2010-01-13 10:15:01