Link soal : https://leetcode.com/problems/contains-duplicate/
Pertanyaan:
Diberikan sebuah array integer nums
, akan mengembalikan true jika terdapat setidaknya satu nilai yang duplikat dan false jika semuanya unik.
Contoh 1:
Masukan: nums = [1,2,3,1] Keluaran: true
Contoh 2:
Masukan: nums = [1,2,3,4] Keluaran: false
Contoh 3:
Masukan: nums = [1,1,1,3,3,4,3,2,4,2] Keluaran: true
Solusi
def containsDuplicate(nums):
myset = set()
for n in nums:
if n in myset:
return True
myset.add(n)
return False
Kita membuat objek myset
untuk melacak duplikasi pada array. Set dalam Python hanya dapat menyimpan elemen unik, sehingga jika ada duplikasi, maka hanya satu salinan dari nilai tersebut yang akan ada dalam set. Selanjutnya adalah melakukan iterasi pada elemen yang ada di dalam nums
, setiap elemen diperiksa apakah sudah ada dalam myset
atau belum. Jika elemen tersebut ternyata sudah ada dalam myset
, berarti ada duplikat di dalam nums
dan fungsi mengembalikan True
. Jika elemen belum ada dalam myset
, elemen tersebut kemudian ditambahkan ke dalam set dengan menggunakan add()
. Jika keseluruhan proses iterasi selesai dan tidak ditemukan nilai yang duplikat, maka fungsi akan mengembalikan False
untuk menunjukkan bahwa tidak ada duplikasi dalam arraynums
.