← Back to list

🎯 LeetCode — Two Sum Çözümü

C# ile Adım Adım, Öğretici ve Açıklamalı Rehber

Heda GÜLER · 2025-12-03 20:48 · 0 claps · 2.1 min read
#two-sum #leetcode-easy #csharp-programming #arrays #length
Open on Medium ↗
Wiki topics: 💻 · Programming

🎯 LeetCode — Two Sum Çözümü

C# ile Adım Adım, Öğretici ve Açıklamalı Rehber

LeetCode’un en popüler sorularından biri olan Two Sum, algoritma mantığını, döngü kullanımını ve indeks yönetimini kavratmak için harika bir başlangıçtır.

Bu yazıda:

  • Soruyu anlamayı
  • Çözüm mantığını kurmayı
  • C# kodunu yazmayı
  • Her satırı tek tek açıklamayı

öğreneceksin.

🧩 Problem Tanımı

Bize bir adet integer dizisi (nums) ve bir adet hedef değer (target) veriliyor. Görevimiz: ➡️ Dizideki iki sayının toplamı hedefe eşitse, bu iki sayının indekslerini döndürmek.

Örnek:

nums = [2,7,11,15]
target = 9

Çözüm:

[0, 1]
çünkü: nums[0] + nums[1] = 2 + 7 = 9

Kurallar:

  • Aynı eleman iki kez kullanılamaz
  • Her testin tek bir çözümü olduğu garanti edilir
  • Cevabı herhangi bir sırada döndürebilirsiniz

🧠 Neden Bu Problem Önemli?

Bu soru, algoritma düşünme becerisini ölçer:

  • Diziyi nasıl gezeceğini bilmek
  • İki indeks arasındaki ilişkiyi kurmak
  • Basit matematiksel koşulları kontrol etmek
  • Return mantığını anlamak

Ve klasik bir O(n²) brute-force çözümü ile başlanır.

🔍 Çözüm Mantığı (Brute-Force)

Temel fikir:

  1. Dizideki her eleman için (i)
  2. Ondan sonraki tüm elemanları (j)
  3. Toplamı target mı diye kontrol et
  4. Evetse → iki indeksini döndür

Bunun adı: ➡️ Çift döngü yaklaşımı ➡️ Zaman karmaşıklığı: O(n²)

💻 Çözüm Kodu (C#)

Aşağıdaki kod, Two Sum probleminin brute-force çözümünü içerir:

public class Solution {
    public int[] TwoSum(int[] nums, int target) 
    {
        // Dış döngü: dizideki her elemanı gez
        for (int i = 0; i < nums.Length; i++)
        {
            // İç döngü: i'nin bir sonrasından başlayarak devam et
            for (int j = i + 1; j < nums.Length; j++)
            {
                // Eğer iki elemanın toplamı hedefe eşitse
                if (nums[i] + nums[j] == target)
                {
                    // İndeksleri döndür ve fonksiyondan çık
                    return new int[] { i, j };
                }
            }
        }

        // Buraya asla düşmez (LeetCode garantisi var)
        return new int[] { };
    }
}

🧽 Satır Satır Açıklama (Detaylı)

public class Solution {

LeetCode tüm kodu bu class içinde ister.

public int[] TwoSum(int[] nums, int target)

  • Geri dönüş tipi: int dizisi
  • Parametreler:
  • nums: verilen sayı listesi
  • target: ulaşılması gereken toplam

🔵 Dış Döngü

for (int i = 0; i < nums.Length; i++)

for (int i = 0; i < nums.Length; i++) i = 0 ile başlıyoruz.

Amaç: dizideki her elemanı birinci sayı olarak seçmek.

nums.Length → dizinin boyutu.

Döngü 0’dan son elemana kadar gider.

🔵 İç Döngü

for (int j = i + 1; j < nums.Length; j++)
  • j her zaman i'nin bir sonrasından başlar.
  • Böylece:
  • Aynı elemanı iki kez kullanmayız.
  • Gereksiz tekrarları önleriz.
  • Bu döngü, i için ikinci sayıyı arıyor.

🔵 Kontrol

if (nums[i] + nums[j] == target)
  • Seçilen iki sayı hedef toplamı veriyor mu?
  • nums[i] → birinci sayı
  • nums[j] → ikinci sayı
  • Toplam target ise çözümü bulduk.

🔵 Çözümü Döndürme

return new int[] { i, j };

return new int[] { i, j }; İki indeksi içeren bir dizi döndürüyoruz.

Method burada tamamen sona erer.

🔵 Son Return

return new int[] { };

Normalde buraya hiç düşmeyiz. LeetCode garanti ediyor: her zaman çözüm var.

Ama C# derleyicisi “method her durumda bir şey döndürmeli” dediği için ekliyoruz.

🧠 Zaman Karmaşıklığı

  • Dış döngü → n tekrar
  • İç döngü → ortalama n/2 tekrar
  • Toplam → O(n²)

Daha iyi çözüm var mı? Evet! HashMap (Dictionary) ile O(n).

🎉 Sonuç

Two Sum, algoritma düşünmenin temeli olan bir problemdir. Bu çözüm:

  • Çift döngülü brute-force yaklaşımı
  • Basit indeks kullanımı
  • Koşul kontrolü
  • C# return mantığı

gibi kavramları çok iyi kavratır.


메타데이터
post_id
df31fca30a4f
slug
leetcode-two-sum-çözümü-df31fca30a4f
url
https://medium.com/@hedaguler25/leetcode-two-sum-%C3%A7%C3%B6z%C3%BCm%C3%BC-df31fca30a4f
canonical_url
https://medium.com/@hedaguler25/leetcode-two-sum-%C3%A7%C3%B6z%C3%BCm%C3%BC-df31fca30a4f
author_url
https://medium.com/@hedaguler25
status
ok
fetched_at
2026-07-14 14:24:44