我試圖找到相當於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
我不同意它「不存在」。它只是沒有命名你認爲它是。 –