recursion 相关问题

递归是一种函数调用,函数调用自身。这些函数也称为递归函数。结构递归是一种解决问题的方法,其中问题的解决方案取决于对同一问题的较小实例的解决方案。

在 Haskell 中的递归函数中,返回布尔值的防护是否比 Or (||) 运算符更可取?

我们以下面的函数为例: findWord :: [[Char]] -> [(Int, Int)] -> (Int, Int) -> String -> Bool findWord _ _ _ [] = True -- 找到单词

回答 1 投票 0

我无法创建递归来基于平面数组构建树

常量 arr = [ { 编号: 1, 名称:'测试', }, { 编号: 2, 名称:'测试', 取决于: 1, }, { 编号: 3, 名称:'测试', 取决于: 1, }, { 编号: 4, 名称:'tes...

回答 1 投票 0

如何减少斐波那契数列的运行时间(递归函数)

n = 1 代表=0 定义 f(n): 如果 n == 0: 返回0 如果 n == 1: 返回1 返回 f(n - 1) + f(n - 2) 同时代表 <= 50: print(f(n)) rep += 1 n +=...

回答 3 投票 0

递归函数式编程问题没有意义

问题是: 函数 Z [] = 0 函数Z[x:xs] = x + 2 * 函数Z(xs) 通过写入传递给每次调用的参数值来完成下表 函数Z 和价值

回答 1 投票 0

找出矩阵被递归分割成多少块

我最近接到一个作业,其中我有一个 4 x 5 矩阵,其中有 0 和 1(零代表矩阵的切割部分)。我需要找到一种方法来计算矩阵将被切片多少块......

回答 1 投票 0

调试递归无法解决我的问题

我在 Python 中编写了这个函数,我期望看到结果 4,但却得到 2。这是为什么呢? 这是我的功能: def 持久性(n): 如果 0 <= n <= 9: return n else...

回答 1 投票 0

PowerShell 递归对象属性

我需要一个方法来为我提供对象的所有属性(递归地)。 不知道传输的对象有多少个子对象。 示例对象: $Car = [PSCustomObject] @{ 轮胎...

回答 2 投票 0

通过递归方法调用和 || 索引跳出 for 循环JavaScript 中的运算符

我正在使用 Javascript 中的树状结构,我发现 Javascript 的 for 循环以意想不到的方式工作。让我描述一下: c...</desc> <question vote="0"> <p>我正在使用 Javascript 中的树状结构,我发现 Javascript 的 for 循环以意想不到的方式工作。让我描述一下:</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>&lt;html&gt; &lt;head&gt;&lt;head&gt; &lt;body&gt; &lt;script&gt; class Test { constructor(name, children) { this.children = []; this.test = () =&gt; { let result = false; for (let i = 0; i &lt; this.children.length; i++) { console.log(this.children[i].name); result = result || this.children[i].test(); } if (this.name.includes(&#39;2&#39;)) result = true; return result; }; this.name = name; this.children = children; } } const t = new Test(&#39;1&#39;, [ new Test(&#39;11&#39;, [ new Test(&#39;111&#39;, []), new Test(&#39;112&#39;, []), ]), new Test(&#39;12&#39;, [ new Test(&#39;121&#39;, []), new Test(&#39;122&#39;, []), ]), ]); const result = t.test(); console.log(result); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</code></pre> </div> </div> <p></p> <p>上面的代码是纯Javascript。 <pre><code>Test</code></pre> 班级可能有孩子,这些孩子也是 <pre><code>Test</code></pre> 班级。它还有一个返回布尔值的 <pre><code>test()</code></pre> 方法,该方法对其子级进行 for 循环,调用子级的 <pre><code>test()</code></pre> 方法,然后使用 <pre><code>||</code></pre> 运算符对结果求和。</p> <p>(所以它是对子节点的一种逻辑Some()操作的实现。)</p> <p><strong>但是,上面的代码并没有调用名称为 <pre><code>test()</code></pre> 和 <pre><code>121</code></pre> 的测试实例的 <pre><code>122</code></pre> 方法。</strong></p> <ul> <li><p>如果我更换以下部分,</p> <pre><code>result = result || this.children[i].test(); </code></pre> <p>与</p> <pre><code>const subResult = this.children[i].test(); result = result || subResult; </code></pre> <p><strong>然后就可以正常工作了。它会迭代所有子级。</strong></p> </li> <li><p>如果我将 for 循环修改如下,</p> <pre><code>for (let i = 0; i &lt;= this.children.length; i++) { // &lt;----- &#39;&lt;&#39; has been replaced with &#39;&lt;=&#39; if (i === this.children.length) { console.log(i); // this prints &#39;2&#39; after calling &#39;0&#39; } console.log(this.children[i].name); result = result || this.children[i].test(); } </code></pre> <p>我可以看到for循环的索引跳出来了。</p> </li> <li><p>如果我通过删除 <pre><code>false</code></pre> 使方法返回 <pre><code>if (this.name.includes(&#39;2&#39;)) result = true;</code></pre>,则调用所有子级的 <pre><code>test()</code></pre> 方法。</p> </li> <li><p>我在Chrome、Firefox和Safari中测试了上述代码,得到了相同的结果。</p> </li> </ul> <p>这种行为正确吗?如果是的话,有人能给我解释一下这个理论吗?</p> </question> <answer tick="false" vote="0"> <p>这称为短路求值 - 当 <pre><code>||</code></pre> 的第一个操作数为真时,第二个操作数不会被执行(不需要,因为整个表达式已经为真):</p> <p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR#short-circuit_evaluation" rel="nofollow noreferrer">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR#short- Circuit_evaluation</a></p> </answer> </body></html>

回答 0 投票 0

递归地将单链表变成整数列表

我正在尝试以递归方式将单链表转换为整数列表。我试图编写一个函数,但它没有按照我的预期工作。 该函数应该接受一个 lis...

回答 3 投票 0

递归回溯 - 二维数组中的单词搜索

我正在尝试 leetcode 上的单词搜索问题。 Leetcode 似乎给我两个测试用例的错误: 板 = [["a","a"]], 字 = "aa" 和:板...

回答 1 投票 0

Python 中的递归回溯 - 二维数组中的单词搜索

我正在尝试 leetcode 上的单词搜索问题。 Leetcode 似乎给我两个测试用例的错误: 板 = [["a","a"]], 字 = "aa" 和:板...

回答 1 投票 0

3 次测试中递归数字和 hackerrank javascript 运行时错误

我正在尝试解决递归数字和,并且实际上解决了它,但是在提交时我在大输入上遇到了 3 个运行时错误。 我已经优化了我的代码很多,但仍然遇到运行时错误。我

回答 3 投票 0

如何编写JS递归函数来跟踪子图,使用邻接列表,获取初始节点列表

目标: 目的是开发一个函数,在给定现有邻接列表实现的情况下,快速跟踪节点列表的子图,并除了 or 之外还返回连接的 ID 列表...

回答 1 投票 0

使用 lambda 将函数的递归部分与其余部分分开是一个好的做法吗?

我正在实现阶乘函数作为编程练习的一部分。由于阶乘没有为负数定义,因此我为此添加了参数检查: int 阶乘(int x) { 如果 (x ...

回答 1 投票 0

我的 C 递归函数是如何工作的?

我用 C 语言编写了一个递归函数,用于释放生成节点树的程序所分配的内存。然而,我无法弄清楚它是如何工作的 - 但它确实通过了 check50。也许我没有

回答 1 投票 0

递归 R 函数及其 Python 翻译的行为不同

这是一个递归 R 函数,涉及来自父环境的矩阵 S: <- function(m, k, n) { if(n == 0) { return(100) } if(m == 1) { return(0) } if(!is.na(S[m, n])...

回答 1 投票 0

不跳过两个连续元素的最大和

任务是从给定列表中找到整数子序列的最大和。子序列必须满足两个条件: 它必须是连续的,这意味着所选元素是连续的...

回答 1 投票 0

如何从 JavaScript 的嵌套结构中递归删除所有对象?

要求: 我试图过滤掉所有值为“”或null的对象。如果该值为“”,那么我希望该对象从规则数组中删除。 之后,如果...

回答 1 投票 0

递归代码的问题 - n 皇后问题

我正在尝试递归解决n皇后问题。请看一下这段代码: defsolve(n,chess_arr,forbidden_cells=[]): print("1.",n,chess_arr,forbidden_cells) 我...

回答 1 投票 0

递归函数不会迭代到 foreach 中的下一个元素

在我看来,在 for 循环中永远不会到达 items 中第二项的代码。 如何修复这个方法? 类项目{ 项目:项目[] = []; 构造函数(公共 ID:字符串...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.