问题标签 [non-recursive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 非递归洪水填充方法
我在Java中制作非递归洪水填充方法,它使用点击像素(x,y)的坐标和颜色代码作为输入。img 是缓冲图像。
代码有效,但仅适用于大而简单的形状(如正方形),有时甚至无法填充它们。如何纠正它始终以任何形状工作?
c++ - 优化整数序列的非递归算法
在招聘测试平台中,我遇到了以下整数序列问题,我在没有递归函数的情况下解决了它以避免堆栈溢出:
这是问题的简短描述:
我们有一个标记,在每个阶段我们都会向前或向后移动。在第 0 阶段,我们处于位置 0(无步骤) 在第 1 阶段,我们向前走一步(+1 步)=> 位置 1 对于第 2 阶段,我们向后走两步(-2 步)=> 位置 -1 对于第 n 阶段:我们在前一个阶段采取的步数减去我们在倒数第二个阶段采取的步数,所以在第 3 阶段,我们将不得不向后退 3 步(-2 - 1)。=>位置-4等...
目标是编写函数 int getPos(int stage) 以返回指定阶段的位置。
我用笔和纸找到了这个公式:
位置 (n) = 步数 (n-1) - 步数 (n-2) + 位置 (n-1)
添加这是我的解决方案
通过平台测试执行测试程序后,一个int case的最大值超时,测试平台说我的解决方案不够优化,无法处理某些情况。
我尝试了“注册”关键字,但它没有效果......
我真的很好奇,我想知道如何编写优化函数。我应该更改算法(如何?)还是使用一些编译器调整?
java - 如何实现堆栈怀着>?
我正在编写的程序是使用堆栈实现为 QuickSort 类中的快速排序提供非递归实现。我觉得我的代码在 sort() 方法中是正确的。由于实现了 Comparable 接口,我遇到的一个问题是初始化堆栈。当我的方法具有“扩展 Comparable”时,我的 Stack 应该被参数化为什么,因为在这种情况下 E 是 Stack 的错误参数。
java - 迭代快速排序
我正在尝试实现一个迭代运行的快速排序方法。我使用堆栈来保存信息。它还将使用分区来实现这一点。我知道底部的分区代码部分很好,它只是它的第一个有问题的块。不过,出于某种原因,我的代码并没有按照它的设想做。对java没有太多经验,所以如果有人看到任何会引发标志的错误,将不胜感激!
测试代码
python - 遍历嵌套列表并为每个元素分配一个相互依赖的值,无需递归(Python)
我想解散以下函数的递归,因为某些输入数据导致超出递归深度错误。 从长远来看,增加递归深度并不是一个解决方案。
列表展平不适用,因为需要保留原始列表结构。
此解决方案使用生成器,但包含递归。它是发电机的事实有什么不同吗?
最后,还有堆栈方法。在这里,我不确定这是否 100% 适用,因为要分配的值相互依赖。
什么是优雅的(Pythonic)非递归解决方案?
path - 拟合优度指数“NA”
我正在使用 Lavaan 运行非递归模型。但是,发生了两件事,我不太明白。首先,拟合优度指数和一些标准误差为“NA”。二、不同方向的两个变量之间的两个系数不一致(非递归部分:ResidentialMobility--Author):一个是正的,一个是负的(至少它们应该是同一个方向的;否则,如何解释?)。有人可以帮我吗?如果您希望我进一步澄清,请告诉我。谢谢!
输出:
lavaan (0.5-21) 在 93 次迭代后正常收敛
c++ - 非递归 Alpha beta 剪枝实现
我正在尝试将 Alpha beta 修剪的递归版本转换为非递归版本,因为我必须在 CUDA 上实现它。这是递归版本
}
现在,我正在使用自制的堆栈来实现非递归的,更详细的,我按照这里的说明进行操作
到目前为止我已经归档的内容
}
我在这里很迷茫,不知道如何将 alpha 和 beta 的值更新到堆栈中?任何想法 ?
algorithm - 如何在没有递归的情况下在 DAG 上实现 DFS?
我想在 DAG 上实现一个 DFS 算法,该算法从孩子那里收集信息并将其传递给父母。当一个节点通过不同的路径连接到根节点时,允许多次重访该节点。在我的情况下,递归是不合适的,因为图可能太大以至于运行算法会超过最大递归深度。
我当前的实现使用堆栈来管理深度优先搜索,它由一个消息传递方案组成,在该方案中我构建了一个哈希映射(节点 → 列表),其中包含子级向其父级的返回值。我想知道是否有更有效的方法来做到这一点。
avl-tree - AVL 树非递归
我正在学习 AVL 树并在递归代码中获得了 TLE。我的导师建议迭代解决方案。我搜索并找到了一个将父节点保存在子节点中的解决方案。我想知道这个可能会在内存中出现问题,不是吗?还有另一种方法可以在 AVL 树中插入、删除不需要将父级保存在子级中的内容吗?请给我一个提示。
algorithm - 如何编写非递归算法来将根添加到树?
我需要一个非递归算法,它将根添加到树值中,然后显示最高值。不要将树中的每个元素都加起来,只是从根到叶的最高价值方式。
在这个例子中,答案是 10 必须在 O(n) 时间