85 / 205
LeetCode · EasyOson10 ball· ~15 daqiqa

Single number

Bo'sh bo'lmagan butun sonlar massivi nums berilgan. Undagi bitta elementdan tashqari barcha elementlar ikki marta qatnashadi. Faqat bir marta qatnashgan o'sha yolg'iz sonni toping.

Siz O(n) vaqt murakkabligida va qo'shimcha xotira ishlatmaydigan (O(1)) algoritm yozishingiz kerak.

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

Misollar

kod
Input: nums = [2,2,1]
Output: 1
kod
Input: nums = [4,1,2,1,2]
Output: 4
kod
Input: nums = [1]
Output: 1

Maslahatlar

  1. O(1) xotira va O(n) vaqt talab qilingani uchun map o'rniga bitli operatsiyalarni o'ylang — XOR ning o'z-o'ziga qarshi xossasidan foydalaning.
  2. Massivdagi barcha sonlarni ketma-ket XOR qiling: bir xil ikkita son XOR qilinganda bir-birini yo'q qiladi (natija 0), shuning uchun oxirida faqat yolg'iz son qoladi.