查找数组数组(或列表列表等)中指定元素的深度

时间:2017-02-23 19:21:13

标签: arrays algorithm multidimensional-array pseudocode

我创建了一个函数(使用伪代码),它返回数组中指定元素的深度(内置可选数组),例如:

def array[] = {"a", {"b", {"c"}, "d"}, {{{}}}, "e"};

对于" e"它应该返回0,对于" c"它应该返回2等 如果数组中没有指定的元素,则函数应返回-1。

我已经尝试了几次,但我不知道优雅(和工作......)解决方案,只有这个:

func foo(array[], var element) {
   int depth = 0;
   boolean found = false;
   boolean recursion = false;
   boolean foundInRecursion = false;

   for (int i = 0; i < array.length; i++) {
        if (array[i] instanceof array[]) {
            depth++;
            recursion = true;
            foo(array[i], element);
            recursion = false;
        } else if (array[i] == element) {
            if (recursion) {
                foundInRecursion = true;
            } else {
                found = true;
            }
        }
   }

   if (foundInRecursion) {
       return depth;
   } else if (found){
       return 0;
   } else {
       return -1;
   }
}

我真的很感激任何帮助! 感谢

0 个答案:

没有答案