简单的问题,但不知怎的,我想不出解决方案。如何删除随机整数数组中的单个最小元素?
a = [7, 5, 3, 2, 1, 4]
b = [2, 2, 1, 1, 2]
这就是我想出的:
def remove_it(num)
num.delete(num.sort[0])
end
代码适用于a
,但不适用于b
。它会在1
中删除两个 b
。我只需要删除一个1
。
如何删除数组中的一个最小数字并保留顺序?
答案 0 :(得分:6)
易peasy。使用.delete_at
+ .index
:
def remove_it(num)
num.delete_at(num.index(num.min))
num
end
a = [7, 5, 3, 2, 1, 4]
b = [2, 2, 1, 1, 2]
remove_it(a) # => [7, 5, 3, 2, 4]
remove_it(b) # => [2, 2, 1, 2]