İçeriğe atla
ΣDSA Patterns
Menü
Dil

Bit Manipülasyonu

Rehber 4 / 6 · Yol 4 / 6

Etkileşimli

Zihinsel model

Bu problem için animasyonlu çözüm. Adımları kaydır veya boşlukla duraklat; değişmezi yüksek sesle yeniden anlat.

Adım 1 / 6
3
0
1

XOR 0..n with nums

nums = [3,0,1], [0,3] aralığından n=3 farklı değer tutar. Biri eksik.

Demo önizleme: Bu çözümler otomatik test paketini geçiyor ama insan tarafından incelenmedi. Trade-off ve yazıları taslak olarak değerlendirin.

Missing Number

Problem (yeniden ifade)

[0, n] aralığında n adet benzersiz sayı. Eksik olanı bul.

Sezgi

0..n ile tüm nums’un XOR’u çiftleri iptal eder; kalan eksiktir.

Yaklaşımlar

0..n ile nums XOR

Doğrulanmadı
Zaman O(n)Alan O(1)

Fikir. x=0..n, nums ile katla.

Yürüyüş. [3,0,1] → 2.

Trade-off. Toplam formülü de O(n); XOR diğer dillerde taşma kaygısını önler.

Çözüm
export function missingNumber(nums: number[]): number {
  let x = nums.length;
  for (let i = 0; i < nums.length; i++) x ^= i ^ nums[i]!;
  return x;
}
export function missingNumber(nums: number[]): number {
  let x = nums.length;
  for (let i = 0; i < nums.length; i++) x ^= i ^ nums[i]!;
  return x;
}

Şablon bağlantısı

Bit XOR kimliği (single number ile aynı aile).

Yansıma