【发布时间】:2022-01-23 13:35:19
【问题描述】:
假设我有一个命令式算法,它保留两个索引 left 和 right 并将它们从左到右和从右到左移动
var left = 0
var right = array.length - 1
while (left < right) { .... } // move left and right inside the loop
现在我想编写这个算法没有可变索引。 我怎样才能做到这一点 ?你有这种算法的例子吗?我更喜欢非递归的方法。
【问题讨论】:
-
你可以使用递归方法...
-
哦,是的。谢谢。不过,我更喜欢非递归方法。
-
如果你想使用循环,你必须改变任何变量(至少是一些辅助变量),以获得退出条件。顺便提一句。你为什么不想使用递归?这是用不可变值做事情的功能性方式! (请更新您的问题)
-
您必须使用递归或可变索引。你怎么能记住你正在处理的元素
标签: scala functional-programming traversal