hqt*_*hqt 2 ruby arrays multidimensional-array
这是我在任务中遇到的问题.
我不知道如何确定阵列A的深度.例如:
arrA = [
[
[1,2]
]
]
Run Code Online (Sandbox Code Playgroud)
我测试过:A[0][0][0] == nil返回false.而且,A[0][0]..[0] == nil总是回归false.所以,我无法通过这种方式知道数组A的深度.
如果这不是你想要的,那应该是一个很好的起点:
def depth (a)
return 0 unless a.is_a?(Array)
return 1 + depth(a[0])
end
> depth(arrA)
=> 3
Run Code Online (Sandbox Code Playgroud)
请注意,这仅测量第一个分支的深度.
我的解决方案在下面回答了任何数组的最大深度:
示例:对于arr = [ [[1],[2,3]],[[[ 3,4]]]],对于3,4 ,arr的最大深度为4.
Aprroach - 压平一层并进行比较
b, depth = arr.dup, 1
until b==arr.flatten
depth+=1
b=b.flatten(1)
end
puts "Array depth: #{depth}" #=> 4
Run Code Online (Sandbox Code Playgroud)
希望它能回答你的问题.
| 归档时间: |
|
| 查看次数: |
3673 次 |
| 最近记录: |