Middle+
How could the solution be refactored using one collection instead of two (seen and temp)?
sobes.tech AI
Answer from AI
Instead of using two collections — seen for already processed elements and temp for temporary storage — you can use a single collection with additional logic to track the state of elements. For example, use a Map with the element as the key and a boolean flag or an enumeration indicating the state (e.g., "processed", "in progress").
Example in Java using HashMap:
Map<String, Boolean> seen = new HashMap<>();
for (String item : items) {
if (seen.getOrDefault(item, false)) {
// element already processed, skip
continue;
}
// process the element
process(item);
seen.put(item, true);
}
This approach avoids data duplication and simplifies logic by keeping information about processed elements in a single structure.