分组并添加以下模式列表的最佳算法

时间:2018-12-05 18:47:55

标签: java algorithm data-structures

让我们考虑列表中有对象

listOfObjects = [a,b,ob,ob,c,ob,c,ob,c,ob,ob,c,ob]

我们必须将它们分组为

[ob,ob,c,ob,c,ob] from index 2 to 7
[ob,ob,c,ob] from index 9 to 12

如果我们在一起有两个ob (如索引2和7),结束,则组开始 c'具有两个ob,紧随其后,如索引8 具有“ c”,其后是两个“ ob” 如果列表结束

那么,获得以上(在Java中)的最佳算法是什么?

2 个答案:

答案 0 :(得分:0)

我认为Stack是合适的数据结构。

将“ ob”放入堆栈中就可以了。

还需要'count'变量。

答案 1 :(得分:0)

我认为您认为“最佳算法”是在时间复杂度方面最佳的算法。

您可以通过简单地一次遍历并跟踪接下来的3个元素(当然要确保您不会超出列表大小)来完成此任务,并通过检查您说的策略来结束小组。如果当前元素旁边没有3个元素,则只需结束组(如您在策略中指定的那样)

因此,该算法的时间复杂度为O(n)。没有比这更好的东西了。