Matej Focko
cd0ad4d7d5
URL: https://leetcode.com/problems/count-the-number-of-fair-pairs/ Signed-off-by: Matej Focko <me@mfocko.xyz>
34 lines
747 B
Kotlin
34 lines
747 B
Kotlin
class Solution {
|
|
private fun countFairPairsBelow(
|
|
nums: List<Int>,
|
|
upper: Int,
|
|
): Long {
|
|
var pairs = 0L
|
|
|
|
var (left, right) = 0 to nums.size - 1
|
|
while (left < right) {
|
|
val sum = nums[left] + nums[right]
|
|
|
|
if (sum < upper) {
|
|
pairs += right - left
|
|
left += 1
|
|
} else {
|
|
right -= 1
|
|
}
|
|
}
|
|
|
|
return pairs
|
|
}
|
|
|
|
fun countFairPairs(
|
|
nums: IntArray,
|
|
lower: Int,
|
|
upper: Int,
|
|
): Long {
|
|
val sortedNums = nums.sorted()
|
|
return (
|
|
countFairPairsBelow(sortedNums, upper + 1) -
|
|
countFairPairsBelow(sortedNums, lower)
|
|
)
|
|
}
|
|
}
|