Anda diberikan daftar lagu yang lagu ke-i-nya berdurasi time[i]
detik.
Mengembalikan jumlah pasangan lagu yang total durasinya dalam detik habis dibagi 60
. Secara formal, kita ingin jumlah indeks i
, j
sedemikian rupa sehingga i < j
dengan (time[i] + time[j]) % 60 == 0
.
Contoh 1:
Input: time = [30,20,150,100,40] Output: 3 Explanation: Three pairs have a total duration divisible by 60: (time[0] = 30, time[2] = 150): total duration 180 (time[1] = 20, time[3] = 100): total duration 120 (time[1] = 20, time[4] = 40): total duration 60
Contoh 2:
Input: time = [60,60,60] Output: 3 Explanation: All three pairs have a total duration of 120, which is divisible by 60.
Kendala:
1 <= time.length <= 6 * 104
1 <= time[i] <= 500
Larutan:
kami ingin tidak. pasangan yang jumlah kelipatannya 60.
Seperti yang kita ketahui (n*x+k)%x == k , berarti kita membutuhkan mod(%) dari setiap bilangan dengan 60.
Jika a+b = 60, maka b = 60-a, artinya jika kita mempunyai 20 maka kita memerlukan 60–20=40 agar jumlahnya sama dengan 60.
Sekarang kasus lain adalah ketika angka adalah kelipatan 60 atau 0, tapi kita tahu bahwa 0 atau kelipatan 60 lainnya merupakan kelipatan 60 dan mod dengan 60 akan menjadikannya 0, jadi kita bisa menangani kasus ini juga.
Kode:
Kesimpulan:
Ini masalah 2 Januari 2022 — Masalah hari ini di Leetcode, jika Anda ingin lebih banyak seperti ini silakan ikuti untuk pembaruan lebih lanjut.
Komentari pemikiran berharga Anda atau saran apa pun tentang modifikasi solusi.