İki Dizideki En Yakın Çift
'İki Dizideki En Yakın Çift' sorunu için ayrıntılı kılavuz ve Python uygulaması.
1. Öğren
'İki Dizideki En Yakın Çift' sorunu, Arama ve Sıralama bölümündeki önemli bir zorluktur.
Bu uygulama Python'deki kolay düzey mantığına odaklanır.
Sunduğumuz çözümlerde teknik doğruluğu ve kod okunabilirliğini ön planda tutuyoruz.
2. Real-World Applications
3. Visual Intuition
İki Dizideki En Yakın Çift için mantık akışının görselleştirilmesi.
4. Prerequisites
5. Step-by-Step Thinking
1. Understand the problem
İki Dizideki En Yakın Çift problem açıklamasını dikkatlice okuyun.
2. Formulate brute force
Basit bir yinelemeli çözüm taslağı oluşturun.
3. Identify inefficiency
Gereksiz hesaplamaları arayın.
4. Optimize search path
Süreci hızlandırmak için karma veya sıralama kullanın.
5. Final Implementation
Üretim standartları kodunu temizleyin.
Sorun Bildirimi
arr1 ve arr2 tamsayılarından oluşan iki sıralı diziyi ve x hedef tamsayısını alan bir closest_pair_two_arrays(arr1, arr2, x) işlevi yazın. (a, b) dizisini bulmalı ve döndürmelidir; burada a, arr1'dan ve b, arr2'dendir; böylece (a + b) ve x arasındaki mutlak fark en aza indirilir. Böyle birden fazla çift varsa, arr1'den en küçük öğeye sahip olanı döndürün.
- •1 <= len(arr1), len(arr2) <= 10^5
- •arr1 and arr2 are sorted in ascending order.
- •-10^9 <= arr1[i], arr2[j], x <= 10^9
Örnekler
closest_pair_two_arrays([1, 4, 5, 7], [10, 20, 30, 40], 32)
(1, 30)
1 from arr1 and 30 from arr2 sum to 31, which is closest to 32 (absolute difference is 1).
closest_pair_two_arrays([1, 4, 5, 7], [10, 20, 30, 40], 50)
(7, 40)
7 from arr1 and 40 from arr2 sum to 47, which is closest to 50 (absolute difference is 3).
Need a Hint?
Edge Cases to Watch
- Boş giriş yapıları
- Tek eleman girişleri
- Büyük sayısal sınırlar
Çözmeye Hazır mısınız?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.
Mülakat Bilgileri ve Çeşitleri
Karmaşıklık Analizi Dökümü
Neden Zaman: Directly evaluates all possibilities.
Neden Uzay: Uses standard local memory.
Neden Zaman: Optimized paths reduce total operations.
Neden Uzay: May trade memory for speed.
Optimize Edilmiş Çözüm Python Kodu
Optimize Edilmiş Çözüm Python Kodu
def closest_pair_two_arrays_opt(arr1, arr2, x):
arr1.sort(); arr2.sort()
l, r = 0, len(arr2) - 1
min_diff = float('inf'); res = (0, 0)
while l < len(arr1) and r >= 0:
if abs(arr1[l] + arr2[r] - x) < min_diff:
min_diff = abs(arr1[l] + arr2[r] - x); res = (arr1[l], arr2[r])
if arr1[l] + arr2[r] > x: r -= 1
else: l += 1
return resKaba Kuvvet Kodu (Spoiler Korumalı)
Kaba Kuvvet Kodu (Spoiler Korumalı)
def closest_pair_two_arrays_brute(arr1, arr2, x):
min_diff = float('inf'); res = (0, 0)
for i in range(len(arr1)):
for j in range(len(arr2)):
if abs(arr1[i] + arr2[j] - x) < min_diff:
min_diff = abs(arr1[i] + arr2[j] - x); res = (arr1[i], arr2[j])
return resAlgorithm Pattern Checklist
When dealing with Searching & Sorting data patterns.
- Are constraints clear?
- Is there a linear or logarithmic optimization possible?
Key Revision Notes
Standart Arama ve Sıralama problemi özellikleri geçerlidir.
İlgili Sorular
PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python Deneme/Hariç ve Hata İşleme
Python komut dosyalarınızın çökmesini önleyin. Try, hariç, nihayet blokları ve özel istisnaların nasıl düzgün şekilde oluşturulacağını öğrenin.
Python'da Bir Dize Nasıl Tersine Döndürülür
Dilimlemeyi, ters() işlevini ve döngü birleştirmeyi kullanarak Python'da bir dizeyi nasıl tersine çevireceğinizi görsel kod örnekleriyle öğrenin.
Python String Yöntemleri Hile Sayfası
Python dize manipülasyonu için eksiksiz bir başvuru kılavuzu. Dize özelliklerini biçimlendirme, arama, bölme, değiştirme ve denetleme konusunda uzmanlaşın.
Python vs JavaScript: Hangi Programlama Dili En İyisidir?
Python ve JavaScript arasında kapsamlı bir karşılaştırma. Sözdizimi farklılıklarını, performansı, kullanım örneklerini (arka uç ve ön uç) ve kodlama örneklerini keşfedin.