Two Pointer yaklaşımı nedir? Hangi problemlerde kullanılır?

Описание к видео Two Pointer yaklaşımı nedir? Hangi problemlerde kullanılır?

Two pointer yaklaşım, özellikle teknik görüşmelerde, bir programcının bilmesi gereken önemli bir problem çözme tekniğidir. Bu yaklaşım tam da isminin hakkını veriyor bu arada; en temelinde, zamandan ve bellekten tasarruf etmek için iki işaretçinin belirli bir veri yapısında kullanılmasını içeriyor. Bu pointer'lar temel olarak dizi dizinlerini temsil ediyorlar şeklinde düşünebilirsiniz.

00:00 Giriş
00:12 Two pointer yaklaşımı nedir?
05:33 Reverse string
09:58 Middle of the Linked List
14:36 Square of a sorted array
18:29 Valid palindrome
22:26 Two Sum II - Input Array Is Sorted

#algoritmalar #programlama #yazılım

Tıpkı Binary Search sonuca ulaşmak için gereken deneme sayısına ilişkin bir optimizasyon olması gibi, bu yaklaşım da aynı fayda için kullanılır.

Buradaki fikir, cevaba daha hızlı ulaşmak için dizinin, veya başka bir sıralı veri yapısının, iki farklı bölümünde aynı anda iterasyon yapmaktır.

Ne tarz problemlerin çözümünde kullanılabiliyor peki bu yaklaşım?

Two pointer yaklaşımı, genellikle veri yapılarındaki sıralama veya dizi/liste manipülasyonu gerektiren sorunlarda etkilidir. Örneğin;

1. Çiftlerin Toplamı veya Hedef Toplam Bulma: Verilen bir sıralı dizide veya liste içinde, belirli bir toplama eşit olan çiftleri veya üçlüleri bulmak için kullanılabilir. Örneğin, "Verilen bir dizide toplamı hedefleyen iki elemanı bulun." gibi bir sorunu çözerken iki pointer yaklaşımı kullanabilirsiniz.

2. Sıralı Dizi/Liste Üzerinde Gezinme: Verilen bir sıralı dizi veya liste üzerinde belli bir kurala göre gezinme veya arama yapma ihtiyacı olduğunda iki pointer yaklaşımı kullanışlı olabilir. Örneğin, iki sıralı dizi arasında kesişen elemanları bulmak gibi.

3. Alt Dizi veya Alt Liste Sorunları: Bir dizinin veya listenin içerisinde belli bir koşulu sağlayan en uzun veya en kısa alt diziyi/alt listeyi bulma gibi sorunlar, iki pointer yaklaşımıyla çözülebilir.

4. Karakter Dizileri Üzerinde İşlemler: Bir karakter dizisi veya string üzerinde belli bir kurala göre işlem yapma ihtiyacı doğduğunda bu yaklaşımı kullanabilirsiniz. Örneğin, bir palindrome (tersten okunuşu da aynı olan) string'i kontrol etmek için.

5. Hareketli Pencereler: Belirli bir pencere boyutu içindeki elemanlar üzerinde işlem yapmanız gereken problemlerde de iki pointer yaklaşımı kullanılabilir. Örneğin, bir dizide belirli bir pencere boyutu içindeki en büyük alt dizi toplamını bulma.

6. Dönüşümler ve Swap İşlemleri: İki veriyi yer değiştirmek veya dönüştürmek gibi operasyonlar için iki pointer yaklaşımı kullanabilirsiniz.

Leetcode soruları:

🚀Reverse string: https://leetcode.com/problems/reverse...
🚀Middle of the Linked List: https://leetcode.com/problems/middle-...
🚀Squares of a sorted array: https://leetcode.com/problems/squares...
🚀Valid Palindrome: https://leetcode.com/problems/valid-p...
🚀Two Sum II - Input Array Is Sorted: https://leetcode.com/problems/two-sum...

***

🤖 LEETCODE ►    • Leetcode  
💚 HACKERRANK ►    • Hackerrank  
👌 HACKERRANK- 30 DAYS OF CODE ►    • Hackerrank - 30 Days of Code  
🎁 C# YENİLİKLERİ ►    • C#  
💜 SIFIRDAN C# PROGRAMLAMA EĞİTİMİ ►    • Sıfırdan C# Programlama Eğitim Seti  
🔆 C# SHORTS ►    • Shorts  
💛 CODECADEMY EĞİTİMLERİ ►    • Codecademy  
🎨 .NET YENİLİKLERİ ►    • .NET  
⭐ .NET MAUI VİDEOLARI ►    • .NET MAUI  
🎖️ VISUAL STUDIO VİDEOLARI ►    • Visual Studio  
🎉 BENCHMARKDOTNET VİDEOLARI ►    • BenchmarkDotNet  
✨ ALGORİTMA VİDEOLARI ►    • Algoritma  

🐦 Twitter'dan takip edin ►   / sonergonul  
💜 Twitch'ten takip edin ►   / sonergonul  
💚 Discord kanalımız ►   / discord  
💖 Quora'dan takip edin ► https://www.quora.com/profile/Soner-G...
💛 Instagram'dan takip edin ►   / sonergonul  
✨ Tiktok'tan takip edin ►  / soner_gonul  

💪 KATIL:    / soner gönül  

Комментарии

Информация по комментариям в разработке