Liste di liste
Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 16 di 63.
Una lista annidata memorizza le righe come elementi di una lista esterna. La dimensione esterna conta le righe; ogni dimensione interna conta gli elementi di quella riga. Usa due indici per selezionare un valore e mantienili entrambi entro i rispettivi limiti.
All'interno di main:
val grid = listOf(listOf(2, 4), listOf(6, 8))
println(grid[1][0])L'indice uno seleziona la seconda riga, poi l'indice zero seleziona il suo primo valore.
Il primo indice seleziona una riga e il secondo seleziona un elemento di quella riga.
Sfida
MedioCompleta cellAt con i parametri grid: List<List<Int>>, row: Int, column: Int. Restituisci la cella selezionata. La riga e la colonna fornite sono sempre valide per quella riga.
A meno che sopra non siano specificati limiti più restrittivi, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.
Restituisci un valore di tipo Int. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio seguito dagli elementi, e una mappa inizia con il conteggio delle sue voci seguito da ogni chiave e valore. Le liste annidate ripetono il formato conteggio-ed-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Le liste usano il formato standard tra parentesi quadre di Kotlin; non stampare etichette aggiuntive.
Provalo tu
fun cellAt(grid: List<List<Int>>, row: Int, column: Int): Int {
// Scrivi qui la tua soluzione.
return 0
}
fun main() {
val gridCount = readln().toInt()
val grid = mutableListOf<List<Int>>()
for (i0 in 0 until gridCount) {
val gridItemCount = readln().toInt()
val gridItem = mutableListOf<Int>()
for (i1 in 0 until gridItemCount) {
val gridItemItem = readln().toInt()
gridItem.add(gridItemItem)
}
grid.add(gridItem)
}
val row = readln().toInt()
val column = readln().toInt()
println(cellAt(grid, row, column))
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Mappe Parte 1
Creare mappeConsultare le mappe in modo sicuroAggiornare le mappeControllare le chiaviRiepilogo - Banco di borsa4Collezioni annidate
Liste di listeAttraversare le righeRiepiloghi delle righeAppiattire liste annidateRipasso - File di posti a sedere7Pipeline di collezioni
Trasformare con MapFiltrare i valoriVerificare le regole della collezioneAccumulare con FoldRiepilogo - Totali approvati2Mappe Parte 2
Iterare sulle voci delle mappeChiavi e valoriMappe di frequenzaMappe annidateRiepilogo - Report delle frequenze5Progetto - Rubrica
Salva contattiTrova contatti3Insiemi e appartenenza
Creare insiemiAggiornare gli insiemiOperazioni sugli insiemiVerificare i sottoinsiemiRiepilogo - Ospiti dell'evento6Valori delle funzioni
Scrivere funzioni lambdaTipi di funzionePassare funzioniVariabili catturateRiepilogo - Punteggio configurabileEsercitati da solo: Playground Kotlin