0
A
回答
0
- 以
Integer
爲關鍵詞創建詞典。值類型不重要。 - 遍歷輸入數組。對於輸入數組中的每個值,檢查該值是否在字典中。
- 如果是,這是重複的,丟棄。
- 如果否,這是第一次遇到該值。保留該值,並將其添加到字典中。
字典的要點是它可以執行O(1)查找。
僞代碼:
var
arr: TArray<Integer>; // input and output
Dict: TDictionary<Integer, Integer>;
SrcIndex, DestIndex: Integer;
....
DestIndex := 0;
for SrcIndex := 0 to high(arr) do begin
Value := arr[SrcIndex];
if not Dict.ContainsKey(Value) then begin
arr[DestIndex] := arr[SrcIndex];
Dict.Add(Value, 0);
inc(DestIndex);
end;
end;
SetLength(arr, DestIndex);
顯然,你需要創建和銷燬,字典。我假設你知道如何做到這一點。而且我選擇修改陣列,但如果您願意,也可以創建一個新陣列。
+0
謝謝,它真的有幫助。 – Alca
相關問題
- 1. 刪除重複和陣列
- 2. 刪除重複陣列
- 3. 刪除重複陣列,從陣列
- 4. 刪除陣列中的重複項
- 5. 刪除陣列中的重複項(C++)
- 6. 刪除通過陣列時的重複
- 7. 刪除矩陣中的重複列
- 8. 刪除PowerShell陣列中的重複值
- 9. 刪除陣列/陣列列表中的重複字符串
- 10. 從KOObservable陣列刪除重複項
- 11. 在Ruby陣列刪除連續重複
- 12. 從陣列中刪除重複項
- 13. 從JS陣列刪除重複
- 14. 從陣列中刪除重複項
- 15. 高級刪除陣列重複
- 16. 關於重複數據刪除陣列
- 17. 遍歷陣列並刪除重複
- 18. 刪除單元格陣列的重複條目MATLAB
- 19. 刪除陣列的重複元素與coffescript
- 20. 刪除陣列中的重複而不改變元素
- 21. 刪除列舉元素的重複
- 22. 刪除列表中的重複元素
- 23. 刪除列表中的重複元素
- 24. 刪除重複元素的序列
- 25. 刪除重複一個陣列的陣列
- 26. 刪除重複的元素
- 27. 刪除重複的元素
- 28. 組陣列和刪除重複(2個維陣列)
- 29. 刪除單元陣列
- 30. 刪除陣列中的重複元素以及Java 1.7中的元素
[如何從數組中刪除元素?](http://www.cs.wisc.edu/~rkennedy/array-delete) –
如果您需要從數組中刪除重複項,您可能需要另一個數據結構(培訓任務除外)。 – MBo