Oggi vediamo il seguente esercizio di LeetCode:
You are given an m x n integer grid accounts where accounts[i][j] is the amount of money the i-th customer has in the j-th bank. Return the wealth that the richest customer has.
Possiamo risolvere questo problema calcolando la somma di ogni riga della matrice, come nel codice proposto.
L’idea chiave è:
- ogni riga dell’array rappresenta un cliente
- ogni elemento della riga rappresenta il denaro in una banca
- per ogni cliente, calcoliamo la somma di tutti i suoi conti
- confrontiamo la somma ottenuta con il massimo attuale
- se la somma è maggiore, aggiorniamo il massimo
- alla fine restituiamo il valore massimo trovato
Questo approccio permette di ottenere una complessità O(m × n), dove m è il numero di clienti e n il numero di conti per cliente. È una soluzione semplice e diretta, che scorre la matrice una sola volta senza strutture dati aggiuntive
function maximumWealth(accounts: number[][]): number {
let max = 0;
accounts.forEach((row: number[]) => {
let sum = 0;
row.forEach((coll: number) => {
sum += coll
})
if(sum > max)
max = sum;
})
return max;
};