小美拿到了一个数组,她每次可以进行如下操作: 选择两个元素,一个加 1,另一个减 1。 小美总共进行了次操作。她希望你回答最终数组是否是非降序,你能帮帮她吗? 请注意,元素可能会被减成负数!
区块链毕设网qklbishe.com为您提供问题的解答
小美拿到了一个数组,她每次可以进行如下操作:
选择两个元素,一个加 1,另一个减 1。
小美总共进行了次操作。她希望你回答最终数组是否是非降序,你能帮帮她吗?
请注意,元素可能会被减成负数!
做不来,大概思路,不知道对不对
特殊情况
只有一个数:不用改变,return 0
有两个数:一个出现次数为n-1,且 sum % n != 0,不能通过改变使得全部相同,return 0
一般情况
sum % n == 0:能通过改变使得全部相同,计算平均值,计算所有值到平均值的距离之和 / 2
sum % n != 0:牺牲一个数,最多可以使 n-1 个数相同;
牺牲最大值 or 最小值???
最保险的做法:选择最大或最小其中一个牺牲,计算其余数的平均值avg
avg > xxx.5 应该取ceiling
avg < xxx.5 应该取floor
计算大于avg的数到avg的距离和 与 小于avg的数到avg的距离和,取大的那个
选择牺牲最大或最小中的小的那个返回
37:57
以上就是关于问题小美拿到了一个数组,她每次可以进行如下操作:
选择两个元素,一个加 1,另一个减 1。
小美总共进行了次操作。她希望你回答最终数组是否是非降序,你能帮帮她吗?
请注意,元素可能会被减成负数!的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训