Yaygın 2D Dizi Desenleri
Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 8 / 59.
2D dizilerle çalışırken genellikle belirli desenler ortaya çıkar. Bu desenleri tanımak, sorunları daha verimli bir şekilde çözmenize yardımcı olabilir. İşte birkaç yaygın desen:
Diagonal Gezinim (Diagonal Traversal)
Satır indeksinin sütun indeksine eşit olduğu elemanlara erişmek (matrix[i][i]) size ana köşegeni (Main diagonal) verir. Ters köşegen (Anti-diagonal) için ise, satır ve sütun indekslerinin toplamı dizinin boyutunun 1 eksiğine eşittir (matrix[i][size - 1 - i]).
Örneğin:
1 2 3
4 5 6
7 8 9Köşegen (matrix[i][i]) boyunca ilerleyin: 1, 5, 9
Ters köşegen (matrix[i][size - 1 - i]) boyunca ilerleyin: 3, 5, 7
Border Traversal
Kenar elemanlarını dolaşmak için diğer indeks üzerinde yineleme yaparken bir indeksi sabit (0 veya size - 1) tutarsınız.
Üst kenara erişmek için, satır indeksini 0'da sabit tutarak sütunlar üzerinde gezinirsiniz.
Örneğin:
1 2 3 4
5 6 7 8
9 10 11 12kenar elemanları: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (6 ve 7 hariç hepsi)
Görev
KolayGirdi olarak kare şeklinde 2 boyutlu bir tamsayı dizisi (matrix) alan ve aşağıdaki desenleri yazdıran printPatterns adında bir metot oluşturun:
- Main Diagonal: Satır indeksinin sütun indeksine eşit olduğu tüm elemanları yazdırın.
- Anti-Diagonal: Satır ve sütun indekslerinin toplamının matris boyutunun 1 eksiğine eşit olduğu tüm elemanları yazdırın.
- Borders: Matrisin üst, alt, sol ve sağ kenarlarındaki (border) elemanları yazdırın.
Çıktı şu şekilde görünmelidir:
Main Diagonal: 1 6 11 16
Anti-Diagonal: 4 7 10 13
Top Border: 1 2 3 4
Bottom Border: 13 14 15 16
Left Border: 1 5 9 13
Right Border: 4 8 12 16Kendin dene
// Kodunuzu yalnızca sınıfın içine yazın. main() veya bu sınıfın dışında herhangi bir kod yazmayın.
class PrintPatterns {
public static void printPatterns(int[][] matrix) {
// Kodunuzu buraya yazın
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşleme