作者:凯瑞德医药科技发展有限公司_997 | 来源:互联网 | 2018-04-25 01:14
输入:数组,所有值为非负整数目标:通过变换使数组的每个值为所有值的平均值,并且迭代次数最少变换方法:某个值自身减一,使其紧邻左边或紧邻右边的值加一。数组第一个值只能向右传递1,最后一个向左传递1.变换过程中数组内所有值不可为负。例1:输入:[0,3,3]第一次:[1,2,3][1,3,2]第二次:[2,2,2]例2[2,4,6,2,1][3,3,5,2,2][3,3,4,2,3][3,3,3,3,3]例3...
php面试题算法数组
输入:数组,所有值为非负整数
目标:通过变换使数组的每个值为所有值的平均值,并且迭代次数最少
变换方法:某个值自身减一,使其紧邻左边或紧邻右边的值加一。数组第一个值只能向右传递1,最后一个向左传递1. 变换过程中数组内所有值不可为负。
例1:
输入 : [0, 3, 3]
第一次: [1, 2, 3] [1, 3, 2]
第二次: [2, 2, 2]
例2
[2, 4, 6, 2, 1]
[3, 3, 5, 2, 2]
[3, 3, 4, 2, 3]
[3, 3, 3, 3, 3]
例3
[1, 0, 7, 0]
[1, 1, 6, 0]
[2, 1, 5, 0]
[2, 2, 4, 0]
[2, 2, 3, 1]
[2, 2, 2, 2]
这个问题有什么好的算法解决吗,例子不是唯一解。求思路,用php实现。