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.