Я работаю над заданием Google foobar, и мне удается 7 из 10 раз.Контрольные примеры скрыты.Не могли бы вы помочь, предложив контрольные примеры или указав, что вы считаете неправильным?
Вопрос:
Напишите функцию под названием answer (data, n), которая принимаетсписок из менее чем 100 целых чисел и числа n, и возвращает тот же список, но со всеми числами, которые встречаются более чем в n раз, полностью удаляется.Возвращаемый список должен сохранять тот же порядок, что и исходный список - вы не хотите путать эти тщательно спланированные смены!Например, если бы данные были [5, 10, 15, 10, 7] и n был 1, answer (data, n) вернул бы список [5, 15, 7], потому что 10 встречается дважды, и, следовательно, был удален изсписок полностью.
Языки
Чтобы предоставить решение Python, отредактируйте solution.py Чтобы предоставить решение Java, отредактируйте solution.java
Контрольные примеры
Входы: (int list) data = [1, 2, 3] (int) n = 0 Выход: (int list) []
Входы: (int list) data = [1, 2, 2,3, 3, 3, 4, 5, 5] (int) n = 1 Выход: (int list) [1, 4]
Входы: (int list) data = [1, 2, 3](int) n = 6 Выход: (int list) [1, 2, 3]
Код
public static int[] answer(int[] data, int n)
{
HashMap<Integer, Integer> map = new HashMap<>();
ArrayList<Integer> data2 = new ArrayList<Integer>();
int count=0;
for(int x:data)
{
if(!map.containsKey(x))
{
map.put(x,1);
}
else if(map.containsKey(x))
{
count=map.get(x);
count+=1;
map.put(x,count);
}
}
for(int y:map.keySet())
{
if(map.get(y)<=n) {
data2.add(y);
}
}
int[] data3 = new int[data2.size()];
for(int i=0;i<data2.size();i++){
data3[i] = data2.get(i);
}
return data3;
}
public static void main(String[] args) {
int[] thisss = {};
int[] ans=answer(thisss,1);
for(int x: ans)
{
System.out.println(x);
}
}