给定一个整数数组,我希望找到最小数目x,这样,在0到x范围内,数组中的元素增加或减少一个数字,就会导致数组按升序排序。
例如,对于[5,4,3,2,8],x的最小值是3。这是因为[2,3,4,5,8]可以通过0、1、2或3增加或减少每个元素来获得。
5-3 = 2
4-1 = 3
3+1 = 4
2+3 = 5
8+0 = 8假设我们有一个更复杂的数组,比如[52,71,36,92,48]。我该怎么解决这个问题?
发布于 2014-09-18 01:47:33
a = [52, 71, 36, 92, 48]
b = a.map.with_index{|e, i| e - i}
((b.max - b.min) / 2.0).ceil
# => 28https://stackoverflow.com/questions/25902867
复制相似问题