-
Notifications
You must be signed in to change notification settings - Fork 7
Description
https://leetcode.com/problems/number-of-distinct-islands
Burada, bir çok boyutlu array (int[][] grid) veriliyor.
Bu array 0 ve 1 değerlerinden oluşuyor.
Dikey veya yatay olarak gruplanan 1'lere "island" deniyor.
Kaç "distinct island", yani birbirinin aynısı olmayan ada olduğunu bulmamız isteniyor.
Burada "distinct island"ın ne demek olduğunu tam olarak anlamamız gerekir.
Adalar şekil bakımından aynı olmamalıdır.
Yani yan yana konulduklarında, aynı olmadıkları anlaşılacak şekilde olmalıdır.
Bu yüzden aşağıdaki örnekte, iki ada var ama bunlar birbirinin aynı şekle sahip oldukları için 1 değeri dönmüş:
11000
11000
00011
00011
Sonuç : 1
Örnek-2:
11011
10000
00001
11011
Sonuç: 3
Burada, sağ üst köşedeki "11" ve sol alt köşedeki "11" aynı şekle sahip olduklarından onları 1 kere sayacağız.
Diğer adalar ise üçlüdür ve birbirlerine benzeseler de aynı şekle sahip değillerdir. Dolayısı ile 2 de oradan gelir. Sonuç 3 olur.
Varsayılan kod:
class Solution {
public int numDistinctIslands(int[][] grid) {
}
}



