Dizi, alt diziler ve alt dizi, bir şekilde duyduğumuz bir şey olan programlama kavramlarıdır!
Ancak daha fazla atlamadan önce size birkaç soru sormak istiyoruz:
- Diziler bir dizi öğe midir?
- Alt dizi dizinin bir parçası mı?
- Alt dizi ve dizi arasındaki fark nedir?
Bu blog, diziyle ilgili kavramlar hakkındaki bilginizi genişletmek için yardıma ihtiyacınız olan tek şey. Ayrıca, olasılığını tartışacağız K ile bölünebilen alt dizi toplamı ve ızgara benzersiz yolları.
Başlayalım!
alt dizi nedir?
Ayrıntılara girmeden önce, alt dizinin temelini bilmek önemlidir. Bir alt dizi, önceden yapılandırılmış bir dizinin içinde bulunan öğeler olarak tanımlanabilir. Bir alt dizinin öğeleri birbirine bitişiktir.
Mantıkta iki farklı iç içe döngü çalıştırılarak belirlenebilir veya bulunabilir. Yuvalanmış bir döngü, temelde şu anda tartıştığımız alt dizilere çok benzeyen bir döngü içindeki bir döngüdür.
Şimdi, iki iç içe döngü çalıştırmak, alt dizinin sağındaki öğeleri bulmak için iç döngüyü kullanabileceğimiz anlamına gelir. Oysa dış döngü, dizinin başlangıcındaki öğeleri bulabilir.
Bununla birlikte, alt dizi ve alt dizi arasındaki farklara geçmeden önce, önce kısa bir alt dizi tanımına bakalım.
Sonrası nedir?
Belirli bir diziden diğer öğeleri veya sıfırı kaldırarak, verilerin alt dizisini elde edebilirsiniz.
Ayrıca dizinin diğer elemanlarının genel düzeninin ve yerleşiminin aynı konumda kaldığından emin olmalısınız.
Bir alt dizi veri yapısının, bitişiklik kuralına uymayan bir alt dizinin genelleştirilmiş biçimi olduğunu da söyleyebiliriz. Bu, bir dizide gösterilen öğelerin birbirine bağlı olabileceği veya olmayabileceği anlamına gelir.
Şimdi tanımı anladığımıza göre, bir alt dizi ve bir alt dizi arasındaki farklara bakalım.
Alt dizi ve alt dizi arasındaki farklar
- Bir alt dizi ve bir alt dizi arasındaki en büyük fark, bir alt dizideki öğelerin bitişik olması gerektiğidir, bu bir alt dizide geçerli değildir.
Bu, bir alt dizideki öğelerin birbirine bağlı olmadığı anlamına gelir.
- Alt diziler söz konusu olduğunda, dizileri göstermek için hem {} hem de <>‘ s kullanabilirsiniz. Oysa, alt sıra durumunda, alt sırayı göstermek için yalnızca <>‘leri kullanabilirsiniz.
Yukarıda belirtilen farklılıkların dışında alt dizilere uygulanan diğer kurallar alt diziye benzer. Dolayısıyla, bu, bu veri yapılarının farklı olduklarından daha fazla ortak noktaya sahip olduğu anlamına gelir.
Ayrıca, gelecekte bir programlama röportajına katılmayı planlıyorsanız, bir röportajda en çok tartışılan konulardan biri olduğu için müteakip kavramını önceden öğrenmenin faydalı olacağını da belirtmek isteriz.
Şimdi ızgara benzersiz yolları sorununa geçeceğiz.
Izgara benzersiz yollar
Bu özel konseptle ilgili problemler genellikle programcıyı bir ızgaradaki benzersiz yolları bulmaya zorlar.
Bu tür sorunları çözmek için uygulayabileceğiniz birkaç farklı yaklaşım veya yöntem vardır, bunlar aşağıdaki gibidir:
Bu yöntem, size sunulan ana çözümden daha küçük sorunların çözümlerini kullanmaya çağırır.
Özyinelemeli yöntemi kullanabilir ve veri yapısını alttan geçmeye başlayabilirsiniz. Bu, sorunda daha hızlı gezinmenize yardımcı olacaktır.
Bu yaklaşım, belirli bir problem yapısındaki örtüşen alt problemleri çözmek için kullanılan dinamik programlamanın kısaltılmış şeklidir.
Bu yaklaşımı, önce sağlanan verilerle bir matris oluşturarak yukarıdan aşağıya doğru gidebiliriz.
Veya alternatif olarak, ızgarayı aşağıdan yukarıya doğru da yönlendirebilir ve ayrıca sorunu çözmek için bir matris oluşturabiliriz.
- DP yaklaşımından alanı optimize etme
Bu durumda, problemi aşağıdan yukarıya yaklaşımla ele alacağız ve önceden oluşturulmuş cevabı 2 boyutlu bir matriste saklayacağız.
Bunlar, grid benzersiz yol problemlerini çözmek için kullanabileceğiniz yaklaşımlardan bazılarıydı. Blogun son bölümünde, alt dizi toplamının bölünebilir olup olmadığını nasıl anlayacağımızı tartışacağız.
Alt dizi toplamının bölünebilir olup olmadığı nasıl anlaşılır?
Bu kavramı anlamak için, size ak değeri olan negatif tam sayılardan oluşan bir dizi verildiğini varsayalım.
Şimdi, bu sorunun çözümüne yaklaşmanın en kolay yolu, verilen tüm alt dizilerin toplamını birer birer hesaplamak ve bunların k ile bölünüp bölünemeyeceğini belirlemek olacaktır.
Her kümülatif dizini böldükten sonra elde edeceğiniz toplamın kalanını tutmak için k boyutundaki başlangıçlar için yardımcı bir dizi oluşturabilirsiniz.
Buradan itibaren bu yardımcı diziyi çaprazlayabilir ve bu örnekte alt dizi toplamının k ile bölünüp bölünemeyeceğini anlayabilirsiniz.
Çözüm
Blogda tartıştıklarımızdan yola çıkarak, bir alt dizi ve bir alt dizi arasındaki benzerliklerin farklılıklarından çok daha büyük olduğu sonucuna varmak doğru olacaktır.
Esasen ikisi arasındaki tek büyük fark, altdizinin öğelerinin birbirine eklenmiş olmasıdır, ancak sonraki dizide durum böyle değildir.
Altdizi ve altdizi dışında, grid benzersiz yolları ve altdizi toplamının k ile bölünüp bölünemeyeceğini nasıl anlayacağınız kavramları ile ilgili problemlerin çözümü için uygulayabileceğiniz yaklaşım ve yöntemlerden de bahsettik.
Kaynak : https://www.thenexthint.com/a-brief-introduction-to-subarray-and-the-difference-between-subarray-vs-subsequence/18022/