From aaa4f18cad0431864928d94449425e7818bdc5f8 Mon Sep 17 00:00:00 2001 From: Ashwagandha-coder Date: Sun, 4 May 2025 17:34:22 +0100 Subject: [PATCH] add 1128 --- .../contest/hashTable/HashTableLeetcode.kt | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/contest/src/main/java/com/github/contest/hashTable/HashTableLeetcode.kt b/contest/src/main/java/com/github/contest/hashTable/HashTableLeetcode.kt index 42f536e3..d587d756 100644 --- a/contest/src/main/java/com/github/contest/hashTable/HashTableLeetcode.kt +++ b/contest/src/main/java/com/github/contest/hashTable/HashTableLeetcode.kt @@ -477,4 +477,35 @@ fun intToRoman(num: Int): String { return result.toString() } +/** + * 1128. Number of Equivalent Domino Pairs + */ + +fun numEquivDominoPairs(dominoes: Array): Int { + var count = 0 + val pairs = mutableMapOf, Int>() + + for (domino in dominoes) { + val base = Pair(domino[0], domino[1]) + val reversed = Pair(domino[1], domino[0]) + + when { + !pairs.contains(base) && !pairs.contains(reversed) -> pairs[base] = + pairs.getOrDefault(base, 0) + 1 + + pairs.contains(base) -> { + count += pairs.getOrDefault(base, 0) + pairs[base] = pairs.getOrDefault(base, 0) + 1 + } + + else -> { + count += pairs.getOrDefault(reversed, 0) + pairs[reversed] = pairs.getOrDefault(reversed, 0) + 1 + } + } + } + + return count +} +