LeetCode in Kotlin

3833. Count Dominant Indices

Easy

You are given an integer array nums of length n.

An element at index i is called dominant if: nums[i] > average(nums[i + 1], nums[i + 2], ..., nums[n - 1])

Your task is to count the number of indices i that are dominant.

The average of a set of numbers is the value obtained by adding all the numbers together and dividing the sum by the total number of numbers.

Note: The rightmost element of any array is not dominant.

Example 1:

Input: nums = [5,4,3]

Output: 2

Explanation:

Example 2:

Input: nums = [4,1,2]

Output: 1

Explanation:

Constraints:

Solution

class Solution {
    fun dominantIndices(a: IntArray): Int {
        val n = a.size
        var sum: Long = 0
        var cnt = 0
        for (i in n - 1 downTo 1) {
            sum += a[i].toLong()
            if (a[i - 1] > sum / (n - i)) {
                cnt++
            }
        }
        return cnt
    }
}