How to find the largest element in a list of integers recursively?

前端 未结 16 1640
不知归路
不知归路 2021-01-31 19:49

I\'m trying to write a function which will recursively find the largest element in a list of integers. I know how to do this in Java, but can\'t understand how to do this at Sca

16条回答
  •  故里飘歌
    2021-01-31 20:24

    def max(xs: List[Int]): Int = {
      def _max(xs: List[Int], maxAcc:Int): Int = {
        if ( xs.isEmpty ) 
          maxAcc 
        else 
          _max( xs.tail, Math.max( maxAcc, xs.head ) ) // tail call recursive
      }
    
      if ( xs.isEmpty ) 
        throw new NoSuchElementException() 
      else 
        _max( xs, Int.MinValue );
    }
    

提交回复
热议问题