LeetCode之Minimum Moves to Equal

2020-07-08  本文已影响0人  糕冷羊

问题:



方法:
首先,数学上中位数就存在距离和最小的特点,所以找出中位数然后遍历所有元素和中位数的距离和即得到最终结果,得到中位数的方式可以通过排序,然后获取数组中间元素即为中位数。

import kotlin.math.abs

class MinimumMovesToEqualArrayElementsII {
    fun minMoves2(nums: IntArray): Int {
        nums.sort()
        val mid = nums[nums.lastIndex / 2]
        var moves = 0
        for (num in nums) {
            moves += abs(num - mid)
        }
        return moves
    }
}

fun main(args: Array<String>) {
    val input = intArrayOf(1,2,3)
    val minimumMovesToEqualArrayElementsII = MinimumMovesToEqualArrayElementsII()
    print(minimumMovesToEqualArrayElementsII.minMoves2(input))
}

有问题随时沟通

具体代码实现可以参考Github

上一篇 下一篇

猜你喜欢

热点阅读