正如标题所说,我正在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(); }' –