查找数组中的所有子集

hke*_*n27 2 ruby arrays string algorithm numbers

我需要帮助来解决这个ruby数组问题.

获取数组的所有子集.仅限独特套装.没有重复任何数字. num_subset([1,2,3])==>结果应该是[[], ["1"], ["1", "2"], ["1", "2", "3"], ["1", "3"], ["2"], ["2", "3"], ["3"]]

def num_subset(arr)
    holder =[]
    order_subset = [[]]

    (arr.length).times do |m|  
        arr.map do |n|
            holder += [n]  
            order_subset << holder
        end
    holder =[]  # resets holder
    arr.shift  # takes the first element out
    end
    order_subset
end
Run Code Online (Sandbox Code Playgroud)

我的结果是==> [[], ["1"], ["1", "2"], ["1", "2", "3"], ["2"], ["2", "3"], ["3"].我的问题是我错过了一个结果 ["1", "3"]

需要一些帮助指出我正确的方向.已经花了好几个小时.不要使用#combination捷径.我需要手动解决这个问题.

San*_*osh 5

a = [1, 2, 3]
arr = []

for i in 0..(a.length) do
  arr = arr + a.combination(i).to_a
end

> arr
# [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)

  • @hken27 你没有在问题中写下那个。你应该有。 (3认同)