【发布时间】:2018-12-21 08:29:00
【问题描述】:
给定一个由 N 个整数组成的数组 A,如果它的所有元素都恰好有 3 个除数,则该数组称为魔法数组。现在您必须将给定的数组转换为神奇的K 长度数组。您可以按任何时间顺序执行以下操作。
将数组中任意元素的值加1。
将数组中任意元素的值减1。
删除数组的任意元素。
约束:
1 <= N <= 1000000
1 <= K <= N
1 <= A <= 1000000
Sample Input
5(size of the array) 3(K)
1 4 10 8 15
Output
4
我尝试过的解决方案:
迭代数组的每个元素,检查素数平方附近,并将此差异添加到全局计数操作(用于计算所需操作的变量)。这个时间顺序是n^2。
寻找更好的解决方案。
【问题讨论】:
-
你想最小化什么?算法的运算次数或计算时间?
-
计算时间小于 n^2 的数量级,寻找更好的解决方案来清除所有边缘情况。就目前而言,我的解决方案没有清除边缘情况,我也不知道确切的边缘情况。
标签: arrays algorithm number-theory