Menu
Coddy logo textTech

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  9

Ana 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 12

kenar elemanları: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (6 ve 7 hariç hepsi)

challenge icon

Görev

Kolay

printPatterns adında bir metot oluşturun ki, kare bir 2D tamsayı dizisi (matrix) alsın ve şu desenleri yazdırsın:

  1. Ana Köşegen: Satır indeksi sütun indeksine eşit olan tüm elemanları yazdırın.
  2. Yan Köşegen: Satır ve sütun indekslerinin toplamı matris boyutundan 1 eksik olan tüm elemanları yazdırın.
  3. 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 16

Kopya 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  9

Ana 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
    }
}
quiz iconKendini test et

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