
g3201_3300.s3265_count_almost_equal_pairs_i.Solution.kt Maven / Gradle / Ivy
package g3201_3300.s3265_count_almost_equal_pairs_i
// #Medium #Array #Hash_Table #Sorting #Counting #Enumeration
// #2024_08_29_Time_184_ms_(100.00%)_Space_41.7_MB_(53.33%)
@Suppress("NAME_SHADOWING")
class Solution {
fun countPairs(nums: IntArray): Int {
var ans = 0
for (i in 0 until nums.size - 1) {
for (j in i + 1 until nums.size) {
if (nums[i] == nums[j] ||
((nums[j] - nums[i]) % 9 == 0 && check(nums[i], nums[j]))
) {
ans++
}
}
}
return ans
}
private fun check(a: Int, b: Int): Boolean {
var a = a
var b = b
val ca = IntArray(10)
val cb = IntArray(10)
var d = 0
while (a > 0 || b > 0) {
if (a % 10 != b % 10) {
d++
if (d > 2) {
return false
}
}
ca[a % 10]++
cb[b % 10]++
a /= 10
b /= 10
}
return d == 2 && areEqual(ca, cb)
}
private fun areEqual(a: IntArray, b: IntArray): Boolean {
for (i in 0..9) {
if (a[i] != b[i]) {
return false
}
}
return true
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy