我试图找到相当于remove_range
(当然不存在)的东西,如下所示。似乎没有简单的方法来实现此功能。如何从阵列中删除范围
a = [0,2,8,2,4,5,]
b = a.remove_range(1,2) #remove items between index 1 and 2 ,inclusively
#expect b == [0,2,4,5]
b = a.remove_range(3,4)
#expect b == [0,2,8,5]
发布您的解决方案:)
假设范围的大小为M,之前,请至少测试上述两种情况下,这种操作应该需要O(1)空间和O(NM)时间复杂。
编辑: 我看到人们不断发布a - a[range]
。但它是不正确的,那就是删除[范围]中存在的元素,而不是去除属于范围的元素。
a - a[1..2]
将返回[0, 4, 5]
。但是,我们想保留第三个元素,即2
。
是一个Ruby API /语法问题或编码/算法问题? – coderz
+ coderz都:) – pierrotlefou
我不同意它“不存在”。它只是没有命名你认为它是。 –