[belajar] Mencari nilai maksimal (dana minimal) dari array


Demi bisa menulis satu artikel dalam sehari, dan karena hingga sore ini tidak ada ide untuk menulis, jadi mau simpan catatan singkat saja.

Jadi ceritanya lagi coba lagi buka web hackerrank.com, dan salah satu soalnya tentang mencari jumlah maksimum dan minimum dari suatu larik alias array. Saat baca soalnya, sudah kepikiran buat rekusif saja, tapi bagaimana caranya?

Dari hasil googling, ketemulah caranya. Intinya menggunakan librari Math.max(a,b), jadi nanti si a dan si b diisi dengan index ke-i dan index sebelumnya hingga index ke-0. Fungsinya ternyata sederhana, hanya 3 baris saja.

private static long cariMax(long[] a, int index){
        return index > 0? Math.max(a[index], cariMax(a, index-1)) : a[0];
    }

Untuk mencari nilai minimal, ya tinggal pakai librari Math.min(a,b). Jadinya seperti ini:

private static long cariMin(long[] a, int index){
        return index > 0? Math.min(a[index], cariMin(a, index-1)) : a[0];
    }

Cara pemanggilannya seperti ini:

long max = cariMax(arraynya, arraynya.length - 1);
long min = cariMin(arraynya, arraynya.length - 1);

Yasudah sekian saja. Salam lapar!


Ada komentar?

This site uses Akismet to reduce spam. Learn how your comment data is processed.