正如標題所說,我正在C#上免費的在線課程,並且我一直被困在這個問題上。它要求使用從最小到最大排序的數組編寫函數,並刪除重複條目。該課程已經完成了數組和排序,但是至今沒有如何去除重複數據。如果你可以幫助我,我會很感激。期待從最小到最大的排序數組刪除重複項
0
A
回答
0
有一對夫婦的方式來完成手頭的任務,但是,最快捷的方式可能是使用LINQ:
int[] array = { 3, 5, 1, -9, 4, 8, 23, -657, 54 };
array = array.Distinct().OrderBy(x => x).ToArray();
0
雖然可能有一些更有效的方法,以幫助您瞭解的概念多一點,這是一個簡單的技術。
您需要跟蹤您已經看到的條目。創建一個新列表,並將數組中的第一個數字添加到它。然後,獲取數組中的第二個數字,並將其與列表中的每個數字進行比較。如果它出現在這個列表中,它是重複的,所以你可以跳過這個數字並移動到數組中的下一個元素。
ArrayList list = new ArrayList();
for (int i = 0; i < yourUnsortedArray.length; ++i) {
bool hasDuplicate = false;
for (int entry in list) {
if (yourUnsortedArray[i] == entry) {
hasDuplicate = true;
break;
}
}
if (hasDuplicate == false) {
list.Add(yourUnsortedArray[i]);
}
}
//list will have no duplicates here.
獎金優化:這將有助於如果你排序陣列第一。這樣,您只需要查看列表中最近添加的數字,而不是每次都在整個列表中走動。
ArrayList list = new ArrayList();
for (int i = 0; i < yourSortedArray.length; ++i) {
if (list.length == 0 || list[list.length - 1] != yourSortedArray[i]) {
list.Add(yourSortedArray[i]);
}
}
+0
這個答案很好解釋給新手的概念。使用ArrayList對於新手來說有點太過分了。使用簡單的'int [] unsortedArray'可能是一個更好的選擇。 – user3454439
相關問題
- 1. 從最小到最大排序數組
- 2. 刪除重複的最大日期
- 3. 從最小到最大排序
- 4. 從最小到最大排序
- 5. 排序表(從最大到最小)
- 6. 從排序數組中刪除重複
- 7. 最小和最大日期 - 分組排
- 8. 用c#中的重複項排序數組,最小存儲
- 9. TSQL:根據最大日期刪除重複項(日期)
- 10. 重新排序下面效率從最小到最大
- 11. 從排序的字符數組中刪除重複項
- 12. 從關係代數中的最大到最小排序
- 13. C++排序從最小到最大的數字
- 14. 如何排序從最大到最小的整數列表
- 15. 從最小到最大數值排列數組的最有效方法?
- 16. 使用JOptionPane從最小到最大排序4個數字
- 17. 排序三個數字陣列從最小到最大
- 18. 排序4整數,從最小到最大
- 19. 如何使用遞歸排序從最小到最大的字符串數組?
- 20. 使用java對從最小到最大的數組進行排序
- 21. 如何輕鬆地在Visual C#中從最大到最小的數組排序?
- 22. 從最小堆切換到最大堆而不重新排列內部數組
- 23. 給定一個排序數組,找到重複值的最大子數組
- 24. 如何從最小 - 最大堆中刪除最大元素?
- 25. 從數組中排除NULL或ZERO值的最大和最小整數
- 26. 排除重複最大值R中
- 27. 按列排序數據從最小到最大或按字母順序排列
- 28. 根據最高值從元組列表中刪除重複項
- 29. SQL,如何刪除重複行並找到最小值(timeIn)和最大值(timeOut)
- 30. 刪除重複數組項
LINQ:'enumerable.OrderBy(X => X).Distinct()' –
如課程已 「走了過來排序」(即你正在學習的排序算法),是基於LINQ的解決方案是否合適?您允許使用哪些數據結構? – spender
'public object [] DistinctSortedArray(object [] array) { return array.OrderBy(x => x).Distinct()。ToArray(); }' –