В общем, использовал HashMap<Integer, ArrayList<Integer>> и не проходит валидацию по 3-му пункту. Понял, что дело в ArrayList в Map. Убираю методы и задача проходит валидацию по 3-му пункту. Прошу код не судить строго, задача 3 раза перерешивалась, так как я 3 раза не правильно понимал задачу, а код друг на друга ставил с тех задач.
Вопрос такой, можно ли как-нибудь обхитрить валидатор, типа поменять методы и т.п.?
package com.javarush.task.task08.task0812;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
/*
Cамая длинная последовательность
*/
public class Solution {
public static ArrayList setPlusElement(HashMap<Integer, ArrayList<Integer>> map, int j) {
ArrayList<Integer> l = new ArrayList<Integer>(10);
l = map.get(j);
if (l.get(1) == 0) l.set(0, l.get(0) + 1);
else l.set(1, l.get(1) + 1);
if (l.get(0) < l.get(1)) {
l.set(0, l.get(1));
l.set(1, l.get(0));
}
return l; //напишите тут ваш код
}
public static ArrayList getNAndOne(HashMap<Integer, ArrayList<Integer>> map, int j) {
ArrayList<Integer> l = new ArrayList<Integer>(10);
l = map.get(j);
l.set(1, 1);
return l; //напишите тут ваш код
}
public static ArrayList setOneAndZero() {
ArrayList<Integer> list = new ArrayList<Integer>(10);
list.add(0, 1);
list.add(1, 0);
return list;
}
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
List<Integer> list = new ArrayList<Integer>(10);
HashMap<Integer, ArrayList<Integer>> map = new HashMap<>();
// надо пошаманить в цикле! ! ! ! !
int l = 0, h = 0, m = 0, n = 0;
for (int i = 0; i < 10; i++) {
int j = Integer.parseInt((reader.readLine()));
//для выполнения задания
list.add(j);
if (i%2 == 0) l = j;
else h = j;
if (i == 0) {
map.put(j, setOneAndZero());
// выполнение 4-го условия
m = 1;
list.add(n, m);
}
else {
if (map.containsKey(j) == true) {
if (h == l) {
map.put(j, setPlusElement(map, j));//метод 2 "+1"
}
else {
map.put(j, getNAndOne(map, j));//метод 3 "{n, 1}"
}
}
else {
map.put(j, setOneAndZero());
}
}
//System.out.println(list);
}
Integer value = 0;
for (HashMap.Entry<Integer, ArrayList<Integer>> pair : map.entrySet())
{
/*
// Возможно надо
int keylength = String.valueOf(pair.getKey()).length();
if (value < pair.getValue()*keylength) {
value = pair.getValue()*keylength;
}
*/
int keylength = String.valueOf(pair.getKey()).length();
if (value < pair.getValue().get(0)/**keylength*/) {
value = pair.getValue().get(0)/**keylength*/;
}
/*
Integer key = pair.getKey(); //ключ
Integer value = pair.getValue(); //значение
System.out.println(key + ":" + value);
*/
}
System.out.println(value);
//напишите тут ваш код
}
}