Skip to content

Instantly share code, notes, and snippets.

@avraamisvi
Created November 30, 2018 21:29
Show Gist options
  • Save avraamisvi/96d75fdd2793d576bb9f3d91c0fe947b to your computer and use it in GitHub Desktop.
Save avraamisvi/96d75fdd2793d576bb9f3d91c0fe947b to your computer and use it in GitHub Desktop.
package com.company;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class DeleteNth {
public static int[] deleteNth(int[] elements, int maxOccurrences) {
if(maxOccurrences == 0)
return new int[0];
final Map<Integer, Integer> counters = new LinkedHashMap<>();
final List<Integer> result = new ArrayList<>();
for(int i = 0; i < elements.length; i++) {
counters.compute(elements[i], (Integer element, Integer counter) -> {
if(counter != null && counter > maxOccurrences)
return counter;
if(counter == null || counter < maxOccurrences)
result.add(element);
return counter == null? 1 : counter + 1;
});
}
return result.stream().mapToInt(i->i).toArray();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment