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 belirli kalıplar sıklıkla ortaya çıkar. Bu kalıpları tanımak, sorunları daha verimli bir şekilde çözmenize yardımcı olabilir. İşte birkaç yaygın kalıp:
Çapraz Tarama
Satır indeksi sütun indeksine eşit olan elemanlara erişmek (matrix[i][i]) ana diyagonalı verir. Anti-diyagonal için, satır ve sütun indekslerinin toplamı dizinin boyutundan 1 eksiğine eşittir (matrix[i][size - 1 - i]).
Örneğin:
1 2 3
4 5 6
7 8 9Ana diyagonal boyunca (matrix[i][i]): 1, 5, 9
Yardiyagonal boyunca (matrix[i][size - 1 - i]): 3, 5, 7
Sınır Gezinimi
Kenar elemanlarını gezinmek için, bir indeksi sabit tutarsınız (0 veya size - 1) diğerini üzerinde yineleme yaparken.
Üst kenara erişmek için, satır indeksini 0'a sabitleyerek sütunlar üzerinde yineleme yaparsınız.
Ö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
KolayprintPatterns adında bir metot oluşturun ki, kare bir 2D tamsayı dizisi (matrix) alsın ve şu desenleri yazdırsın:
- Ana Köşegen: Satır indeksi sütun indeksine eşit olan tüm elemanları yazdırın.
- Yan Köşegen: Satır ve sütun indekslerinin toplamı matris boyutundan 1 eksik olan tüm elemanları yazdırın.
- Kenarlar: Matrisin üst, alt, sol ve sağ kenarlarının elemanlarını yazdırın.
Çıktı şu şekilde olmalıdır:
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 16Kopya kağıdı
Yaygın 2D dizi gezinme desenleri:
Köşegen Gezinimi
Ana köşegen: matrix[i][i] (satır indeksi sütun indeksine eşittir)
Yardımcı köşegen: matrix[i][size - 1 - i] (satır ve sütun indekslerinin toplamı size - 1'e eşittir)
1 2 3
4 5 6
7 8 9Ana köşegen: 1, 5, 9
Yardımcı köşegen: 3, 5, 7
Kenar Gezinimi
Diğerini yineleme sırasında bir indeksi sabit tutun (0 veya size - 1):
- Üst kenar: row = 0, sütunları yinele
- Alt kenar: row = size - 1, sütunları yinele
- Sol kenar: column = 0, satırları yinele
- Sağ kenar: column = size - 1, satırları yinele
Kendin dene
// Kodu yalnızca sınıf içinde yazın. Bu sınıfın dışında main() veya herhangi bir kod yazmayın.
class PrintPatterns {
public static void printPatterns(int[][] matrix) {
// Kodu 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