我想从给定的输入中创建一组元素。 (即i / p:5 5 4 4 4 3 3 3 3 2 2 2 1 1 1,然后o / p:5 4 3 2 1)
我有一个逻辑:创建一个数组并将元素存储在其中。连续读取元素并编写一个循环,如果两个元素(当前选择的元素和索引小于该数组的数组中的元素)将分配布尔值false当前元素)不一样。在为一个元素执行循环之后,存储的所有布尔值都通过按位OR运算传递,如果整数值为false,则将当前元素推送到存储该集合的数组,并且下一个元素是给定的序列是选择并执行相同的操作。
我还没有为此编写代码。那么,这是算法。对?另外,你知道更好的算法吗?找一套?
感谢。
答案 0 :(得分:0)
你永远不需要为这种事情使用数组。了解List
和Set
s并改用它们。
Set<Integer> set = new LinkedHashSet<Integer>(Arrays.asList(5, 5, 4, 4, 3, 2, 4, 3, 1));
System.out.println(set); // prints [5, 4, 3, 2, 1]