给定一个整数数组,我想找到最小数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]
。我该如何解决这个问题?
答案 0 :(得分:1)
a = [52, 71, 36, 92, 48]
b = a.map.with_index{|e, i| e - i}
((b.max - b.min) / 2.0).ceil
# => 28