Smart! You can avoid calculating and then removing that extra element by calling init and tail before you scan:
init
tail
scan
scala> arr.scanLeft(1)(_ * _).init res30: Array[Int] = Array(1, 1, 2, 6, 24) scala> arr.scanRight(1)(_ * _).tail res31: Array[Int] = Array(120, 60, 20, 5, 1) scala> arr.init.scanLeft(1)(_ * _) res32: Array[Int] = Array(1, 1, 2, 6, 24) scala> arr.tail.scanRight(1)(_ * _) res33: Array[Int] = Array(120, 60, 20, 5, 1)
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Smart! You can avoid calculating and then removing that extra element by calling
init
andtail
before youscan
: