09 / 205
LeetCode · EasyOson10 ball· ~20 daqiqa

Contains Duplicate II

Sizga butun sonlardan iborat nums massivi va bitta k butun soni berilgan.

Agar massivda shunday ikkita alohida i va j indekslar mavjud bo'lsaki, bunda nums[i] == nums[j] va ularning indekslari orasidagi masofa ko'pi bilan k ga teng bo'lsa (ya'ni abs(i - j) <= k), u holda true qaytaring. Aks holda false qaytaring.

example.go
func solve(nums []int, k int) bool {
    // ...
}

Misollar

kod
Input: nums = [1,2,3,1], k = 3
Output: true
Tushuntirish: nums[0] va nums[3] o'zaro teng va ularning indekslari orasidagi farq 3 ga teng.
kod
Input: nums = [1,0,1,1], k = 1
Output: true
kod
Input: nums = [1,2,3,1,2,3], k = 2
Output: false

Maslahatlar

  1. Har bir son oxirgi marta qaysi indeksda uchraganini saqlaydigan xarita (map) haqida o'ylang.
  2. Massivni bir marta aylanib, har bir son uchun uning oxirgi ko'rilgan indeksini map'da saqlang; yangi son map'da bo'lsa va joriy indeks bilan farqi k dan oshmasa true qaytaring.