Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ
Π‘Π΅Π· Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ

HackerRank #33 | Arraylist | πŸ‡§πŸ‡·

Π’ этом ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ нСсколько inputs-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ являСтся довольно слоТным… ΠŸΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ java, arraylist, array, seconded.

Π’ этом ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ нСсколько inputs-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ являСтся довольно слоТным для понимания (я Π½ΡƒΠΆΠ΄Π°Π»Π°ΡΡŒ Π² ΠΏΠΎΠΌΠΎΡ‰ΠΈ, Ρ‡Ρ‚ΠΎΠ± ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅), ΠΈ я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅. Для этого, я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π° Π΄Π²Π΅ части:

=========

Π§Π°ΡΡ‚ΡŒ I

  • Recebemos um int n . Π­Ρ‚ΠΎ in разграничСния количСство Массивов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π² спискС.
  • Recebemos um int d . Π­Ρ‚ΠΎ int разграничСния количСство элСмСнтов Π² массивС.

НапримСр,|, 4):

2
3 11 22 33
4 54 12 3 12

ВскорС всС ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π°, Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΊΠ°Π· количСство списков ΠΈΠ»ΠΈ количСство элСмСнтов Π² спискС.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ эту ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹-послСдовал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг:

  • Π― Π‘ΠΊΠ°Π½Π΅Ρ€
  • Поймал int n; с этого Π‘ΠΊΠ°Π½Π΅Ρ€
  • Π― создал ArrayList[] ArrayList[n] ( n ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ количСство массивов ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ input n
  • Π― Π»ΠΎΠ²ΠΈΡ‚, Ρ‡Π΅Ρ€Π΅Π· scanner.nextInt() ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Array Ρ‡Π΅Ρ€Π΅Π· d .
  • Π’ я сдСлал Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΈ int j , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ [i] массивов.

Π‘Ρ‚Π°Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Π°ΠΊ:

        Scanner scanner = new Scanner(new File("input.txt"));
        int n = scanner.nextInt();
        int d;

        ArrayList[] nArray = new ArrayList[n]; // n Γ© a quantidade de arrays

            for (int i = 0; i < n; i++) {
                d = scanner.nextInt();
                nArray[i] = new ArrayList();
                for (int j = 0; j < d; j++){
                    nArray[i].add(scanner.nextInt());
            }
        }

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ цикличСски Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ цикличСски Ρ€Π°Π·ΠΌΠ΅Ρ€ d . Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ массив послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· всС элСмСнты Π΅Π³ΠΎ ΠΈ Ρ‚Π°ΠΊ, ΠΏΠΎΠΊΠ° количСство массивов мСньшС < , n

=========

Π§Π°ΡΡ‚ΡŒ II

БСйчас ΠΈΠ΄Π΅Ρ‚ вторая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ int называСтся q ΠΈ это ΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΈΡ‚ количСство Π»ΠΈΠ½ΠΈΠΉ (Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ. Π—Π΄Π΅ΡΡŒ, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π΄Π²Π° числа, x ΠΈ y . x ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ строки, Π° y ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ столбца. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ “Π»ΠΎΠ²ΠΈΡ‚ΡŒ” элСмСнт ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ заявили Ρ€Π°Π½Π΅Π΅, ΠΏΠΎ Ρ… ΠΈ y . Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ясным:

Π—Π΄Π΅ΡΡŒ, Π½Π° рисункС, Ρ‡Ρ‚ΠΎ я сдСлал, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ int n , d e q .

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части, я сдСлал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг:

  • ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ o int.nextInt()
  • Π£ΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ x ΠΈ y , Π±Π΅Π· ΠΈΡ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. > Π’Π°ΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈΡ… Π²Π½Π΅ for Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅.
  • For состоит ΠΈΠ· ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π±ΡƒΠΊΠ²Π° Ρ‡, ΠΏΠΎΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ мСньшС < , q ΠΈ сканированиС x ΠΈ y . Π’Π°ΠΊ:
            int q = scanner.nextInt();
            int x;
            int y;

            for (int h = 0; h < q; h++){
                x = scanner.nextInt();
                y = scanner.nextInt();

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, консоль Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сообщСниС ERROR! случай x e y Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ/ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ . Π’ этом случаС, ΠΊΠ°ΠΊ ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 0 (ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ это Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ свои ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Ρ… ΠΈ y ), ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° try ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Π² самом Π΄Π΅Π»Π΅, x - 1 ΠΈ y - 1 . Π’ catch объявляСм, Ρ‡Ρ‚ΠΎ Exception создаСт um System.out.println("ΠžΠ¨Π˜Π‘ΠšΠ!"); .

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ:

public class Solution {
    public static void main(String[] args) throws Exception {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int d;

        ArrayList[] nArray = new ArrayList[n];

            for (int i = 0; i < n; i++) {
                d = scanner.nextInt();
                nArray[i] = new ArrayList();
                for (int j = 0; j < d; j++){
                    nArray[i].add(scanner.nextInt());
            }
        }
            int q = scanner.nextInt();
            int x;
            int y;

            for (int h = 0; h < q; h++){
                x = scanner.nextInt();
                y = scanner.nextInt();
                try{
                    System.out.println(nArray[x-1].get(y-1));
                } catch(Exception e){
                    System.out.println("ERROR!");
                }
            }

        scanner.close();
    }
}

=========

Π₯арактСристика

ArrayList : Oracle

============

Π­Ρ‚Π° публикация являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ сСрии ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π² Java Π½Π° HackerRank. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ полная сСрия:

  • HackerRank #6 | Π‘ΠΊΠ°Π½Π΅Ρ€ e ΠšΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°
  • HackerRank #7 | Int Π² строку/String Π² Int
  • HackerRank #8 | Π”Π°Ρ‚Π° ΠΈ врСмя
  • HackerRank #9 | Π‘Π»ΠΎΠΊ статичСского ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°
  • HackerRank #10 | Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π²Π°Π»ΡŽΡ‚
  • HackerRank #11 | Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  • HackerRank #12 | Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² строки
  • HackerRank #13 | Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ подстрок
  • HackerRank #14 | Абстрактный класс
  • Π₯акСрский Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ #18 | BigInteger
  • HackerRank #19 | Loops II
  • HackerRank #20 | РСвСрс строки
  • HackerRank #23 | ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Instanceof
  • HackerRank #26 | Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ
  • HackerRank #27 | 1D Массив
  • HackerRank #28 | Анаграммы
  • HackerRank #33 | Arraylist
  • HackerRank #34 | ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ/ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚
  • HackerRank #36 | ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ
  • Π₯акСрский Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ #37 | Бписок
  • HackerRank #38 | Подмассив
  • Π₯акСрский Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ #39 | HashSet
  • HackerRank #40 | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Java ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»: “https://dev.to/beatrizmaciel/hackerrank-33-arraylist-2lj1”