https://leetcode.com/problems/number-of-equivalent-domino-pairs/description/ | Easy |
---|
Дан список костяшек домино, каждая представлена парой чисел (a, b)
. Пара (a, b)
эквивалентна (c, d)
, если a == c
и b == d
или a == d
и b == c
. Посчитай количество эквивалентных пар костяшек.
Input:
dominoes = [[1,2],[2,1],[3,4],[5,6]]Output:
1
Input:
dominoes = [[1,2],[1,2],[1,1],[1,2],[2,2]]Output:
3
fun numEquivDominoPairs(dominoes: Array<IntArray>): Int {
val counts = Array(10) { IntArray(10) } // считаем сколько раз встречалась каждая комбинация
var result = 0
for ((a, b) in dominoes) {
val x = minOf(a, b)
val y = maxOf(a, b)
result += counts[x][y] // добавляем текущее количество таких доминошек
counts[x][y]++ // увеличиваем количество для текущей доминошки
}
return result
}
O(n), где n — количество костяшек домино.
O(1), так как используются только массивы фиксированного размера.