美文网首页
LeetCode之Minimum Moves to Equal

LeetCode之Minimum Moves to Equal

作者: 糕冷羊 | 来源:发表于2020-07-08 16: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

相关文章

网友评论

      本文标题:LeetCode之Minimum Moves to Equal

      本文链接:https://www.haomeiwen.com/subject/aiuccktx.html