【问题标题】:checking for occurrences of null between first value of array and last non null value of array?检查数组的第一个值和数组的最后一个非空值之间是否出现空值?
【发布时间】:2014-04-09 14:59:58
【问题描述】:

我正在尝试测试二叉树数组是否完整。我的想法是获取数组并检查数组 [0] 位置和数组最后一个非空值的索引之间是否有任何空值。我的问题是如何找到数组中最后一个非空元素?

【问题讨论】:

    标签: java arrays tree null


    【解决方案1】:

    您可以从头开始扫描,记住您找到的最后一个非空的索引。或者从头开始向后工作;第一个非空的索引将比第一个空的索引小 1(除非它们都是空的)。

    但既然你关心的只是在非空之前是否有空,向前扫描直到找到空,然后继续;如果你在到达终点之前打了一个非空值,那么你的 BTA 就没有完成。

    【讨论】:

      【解决方案2】:

      试试:

      boolean foundNotNull = false;   // has a non-null value been found already?
      for(int i = array.length - 1 ; i >= 0 ; --i) {
          if(array[i] == null && foundNotNull ) {
              return true;   // yes there are null values
          }
          if(array[i] != null) {
              foundNotNull = true;
          }
      }
      

      【讨论】:

        【解决方案3】:

        查找数组的第一个和最后一个非空值的最佳方法。

            var first = myArray.filter(function(e, i, a) { return e != undefined;})[0];
        
            var last = myArray.reverse().filter(function(e, i, a) { return e != undefined;})[0];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-03
          • 1970-01-01
          • 1970-01-01
          • 2023-04-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多