【发布时间】:2014-06-16 11:08:42
【问题描述】:
我有一些元素的列表。
List<Integer> list = new ArrayList<Integer>();
假设列表包含以下值:
0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4
如何在每个组之前添加一个虚拟元素(例如 -1)作为分隔符?他的结果应该是
-1,0,0,0,0,0,-1,1,1,1,1,-1,2,2,2,2,2,-1,3,3,3,3,3,3,3,3,-1,4,4,4,4,4,4,4
我如何有效地做到这一点?
【问题讨论】:
-
您将要执行此请求的主要思想是什么,可能有替代和更好的解决方案
-
我不认为你会比通过列表的蛮力迭代做得更好,原因很简单,你需要比较每对连续的元素。所以你永远不会比 O(n) 做得更好。
-
@BasselKh 可能有。但这只是我问题的一部分。列表排序后。我想对它进行分组,以便我可以将它用于解决方案。
-
除非真的需要这样做(是作业吗?),否则根本不应该这样做。处理这种情况的典型方法是将值与它们的出现次数保持映射,如果您确实需要以这种方式打印它们,请遍历映射并随时构建输出。
标签: java arrays algorithm list