Loading...
VasilK avatar VasilK 40 Точки

07. Max_Sequence Equal Elements

Реших да погходя към задачата по поразличен начин.

Тествах какви ли не комбинации и започвам да се съмнявам, че проверка 10 проверява за съдържание в кода, а не за резултат.

1 2 3 4; 2 4 6 8, със и без спейс след arr[0]

масив с дължина 1ца от 0 до 9

0 0 1 1

1 1 1 3 3 5 4 1 1 5 5

1 1 1 3 3 5 4 1 1 1 1 5 5

import java.util.*;

public class Max_Sequence_v1 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int[] arr = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(e -> Integer.parseInt(e)).toArray();

        Map<Integer, String> map = new HashMap<Integer, String>();

        int n = 0;
        for ( int i = 0; i < arr.length-1; i++) {
            if (arr[i] == arr[i + 1]) {
                map.put(i, arr[i]+"_"+(n+=1));
            } else n = 0;
        }

        int f_val = 0;
        int f_cnt = 0;

        for ( int key : map.keySet()) {

            String [] v = map.get(key).split("_");
            int value = Integer.parseInt(v[0]);
            int count = Integer.parseInt(v[1]);

            if ((key + 1 - key == 1) && f_cnt < count ) {
                f_val = value;
                f_cnt = count;
            }
        }

      if (map.isEmpty()) { System.out.print(arr[0] + " "); return;}
//      if (f_val == 0 ) { System.out.print(arr[0]); return;}

        for ( int f = 0; f <= f_cnt; f++) {
           System.out.print(f_val + " ");
        }

    }
}
Тагове:
0
Fundamentals Module
VasilKotsev avatar VasilKotsev 830 Точки

Чак пък с reflection да ви проверяват кода на тази задача едва ли... По-скоро е възможно някакъв граничен случай да ти дадат примерно празен стринг. Judge проверява output-а, чак в OOP вече гледа и за други неща.

0
VasilK avatar VasilK 40 Точки

тествах и с -2147483648 и 2147483647 за integer input всичко е ок. 

Освен да е нещо от свойствата на hashmap! Писах друг код, ползвам List вместо HashMap, който не минава на проверка 5, но 10  е ок.

0
VasilKotsev avatar VasilKotsev 830 Точки

Не пиша на Java, но щом ползваш HashMap ключовете винаги трябва да са уникални и подредбата на елементите никога не се гарантира защото отдолу е имплементирана Хеш таблица. Нямам възможност да дебъгвам кода ти в момента, но щом с друга структура от данни минават някои тестове вероятно твоят подход е грешен.

0
VasilK avatar VasilK 40 Точки

Пренаписах го с List и минава. Някой ако може да ми каже каква е разликата с HashMap, ще черпа каквото пие.

До модератоторите: Моля да проверим условието на проверка 10. Много ми е интересно какво се крие отзад.

import java.util.*;
import java.util.stream.Collectors;

public class Max_Sequence_v2 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int[] arr = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(e -> Integer.parseInt(e)).toArray();

        Map<Integer, String> map = new HashMap<Integer, String>();
        List<String> list = new ArrayList<String>();


        int n = 0;
        for ( int i = 0; i < arr.length-1; i++) {
            if (arr[i] == arr[i + 1]) {
                  list.add( i+"_"+arr[i]+"_"+(n+=1));
            } else n = 0;
        }

        int f_val = 0;
        int f_cnt = 0;

        for ( int x = 0; x < list.size(); x++){
            String [] v = list.get(x).split("_");
            int key = Integer.parseInt(v[0]);
            int value = Integer.parseInt(v[1]);
            int count = Integer.parseInt(v[2]);

            if ((key + 1 - key == 1) && f_cnt < count ) {
                f_val = value;
                f_cnt = count;
            }
        }

        if (list.isEmpty()) {System.out.print(arr[0]+ " "); return;}

        for ( int f = 0; f <= f_cnt; f++) {
            System.out.print(f_val + " ");
        }

    }
}

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.