recursion 相关问题

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

多次递归返回

我正在做leetcode 79 C++解决方案,你需要在2D矩阵中查找单词。我用回溯来做到这一点 类解决方案{ 民众: 布尔回溯(int row,int col,int N,向量 我正在做leetcode 79 C++解决方案,你需要在二维矩阵中找到单词。我正在用回溯来做到这一点 class Solution { public: bool backtrack(int row, int col, int N, vector<vector<char>>& matrix, const string& word, const int num_rows, const int num_cols, const int word_size, bool& result) { if (word[N]==matrix[row][col]) //Letter in matrix equals current word letter { if (N==word_size or result) //BASE CASE: Reached end of word return result = true; map_been[row][col] = true; //Cell is used if (row!=0 and map_been[row-1][col]==0)} //Going up backtrack(row-1, col, N+1, matrix, word, num_rows, num_cols, word_size, result); if (col!=num_cols and map_been[row][col+1]==0)} //Going right backtrack(row, col+1, N+1, matrix, word, num_rows, num_cols, word_size, result); if (row!=num_rows and map_been[row+1][col]==0)} //Going down backtrack(row+1, col, N+1, matrix, word, num_rows, num_cols, word_size, result); if (col!=0 and map_been[row][col-1]==0)} //Going left backtrack(row, col-1, N+1, matrix, word, num_rows, num_cols, word_size-1, result); map_been[row][col] = false; //clean-up map } return result; } bool exist(vector<vector<char>>& matrix, string word) { int num_rows = matrix.size(); int num_cols = matrix[0].size(); int word_size = word.size(); bool result=false; vector<vector<bool>> map_been (num_rows, (vector<bool> (num_cols, false))) for (int i=0; i<num_rows; i++) for (int j=0; j<num_cols; j++) //starting from every matrix position { if (backtrack(i, j, 0, matrix, word, num_rows-1, num_cols-1, word_size, result)) return true; } return false; } }; 在每个递归步骤中,我有 4 个变体:向上、向左、向右或向下,每个步骤都会产生新的递归。我想知道当我找到整个单词(基本情况)时如何结束所有递归,因为现在当我找到它时,程序会继续向左、向右等计数。 使用递归的结果,一旦成功就返回。 您还可以移动有效性检查以简化流程,并使用参数的大小而不是传递它们。 这里有一个不同的建议: bool backtrack(int row, int col, int N, const vector<vector<char>>& matrix, const string& word) { return N == word.size() // Found it. || ( // Validity checks. row >= 0 && row < matrix.size() && col >= 0 && col < matrix[0].size() && N < word.size() && word[N] == matrix[row][col] // Keep searching. && ( backtrack(row-1, col, N+1, matrix, word) || backtrack(row, col+1, N+1, matrix, word) || backtrack(row+1, col, N+1, matrix, word) || backtrack(row, col-1, N+1, matrix, word))); }

回答 1 投票 0

递归访问嵌套字典中的元素值

寻找一种更强大的方法来使用 MainKey(可以是任意深度)、SubKey(始终紧随 MainKey)和 Element(跟随 SubKey ...

回答 1 投票 0

C++ - 如何使用递归绘制等腰直立三角形?

编写一个名为 DrawTriangle() 的递归函数,输出“*”线以形成一个正面向上的等腰三角形。函数 DrawTriangle() 有一个参数,一个表示基数的整数...

回答 1 投票 0

Maxima:递归求导

我正在尝试编写一些代码,通过求函数的导数来递归地找到泰勒系数,然后在基本情况下评估 x=0 处的导数。这是我的代码...

回答 2 投票 0

通过分支和层次结构确定在 JavaFX 中实现生命树可视化

我正在开发一个项目,使用 JavaFX 可视化生命之树,该项目基于 Kaggle 的数据集:生命之树数据集。 该数据集将物种组织成分层树结构,包括

回答 1 投票 0

在 O(lgn) 中计算 2^n 的算法

我需要一个计算 2^n 的算法,即 O(lgn) 。我做了这样的事情: 算法函数 (n){ 如果(n==0)返回1; 否则 if ( n % 2 == 0) return 2 * func (n/2); 电子...

回答 2 投票 0

XSLT 循环嵌套数据

我嵌套了 xml 数据。我正在循环项目元素,并希望使用递归获得所有项目的价格总和。 <

回答 1 投票 0

为什么函数递归似乎让条件变得疯狂?

首先: 下面代码中的 test_container 是一个仅用于“调试”目的的函数。对我的工作项目没有真正的用处。 真正的函数叫做 fo...

回答 1 投票 0

如何在vue.js模板中编写递归嵌套循环?

这是我的数据集 { “项目”:[ { “内容类型”:“h1”, “项目”:[ { “内容类型”:“b”,...

回答 1 投票 0

Leetcode 1255-递归与回溯

我不太明白为什么当我们有第二个 for 循环来恢复 letterCount 时我们使用 .clone() 方法。当我在没有 .clone() 方法的情况下运行这段代码时,它给了我错误的答案.. .

回答 1 投票 0

返回一个数组列表而不传递参数

静态ArrayListLinearSearch(int [] arr,int索引,int目标){ ArrayList iList = new ArrayList<>(); if(index == arr.length){ 返回...

回答 1 投票 0

使用回溯C++解决迷宫

我有这个二维矩阵迷宫。 “@”表示开始,“#”表示结束。 0表示路径被封锁,1表示可以通过。程序需要解决迷宫和原理...

回答 1 投票 0

我无法使用递归获取BST的特定节点。即它擦除的每个堆栈

全局nodeM 节点M=无 def inorderTraversal(self, root: 'TreeNode', tval:int) -> 'TreeNode': #如果(节点M): #print("sdf", 类型(nodeM)) #节点=无 如果根: ...

回答 1 投票 0

使用 TreeMap 进行二叉树深度优先搜索的顶部视图

这是我对二叉树编码忍者问题顶视图的尝试 https://www.naukri.com/code360/problems/top-view-of-binary-tree_799401?leftPanelTabValue=问题 我希望用 TreeMap 来做到这一点...

回答 1 投票 0

在postgres中选择/过滤树结构

我正在为遗留系统开发一项新功能。该系统使用两个表来保存“文档”并保存文档之间的关系(“关系”)。这个“关系”表创建了一些东西......

回答 1 投票 0

Python全局变量在递归中得到不同的结果

我有这段代码,它打印 1: s = 0 定义 dfs(n): 全球范围 如果 n > 10: 返回0 s += dfs(n + 1) 返回n 深度学习(0) 印刷) 如果我这样修改dfs: 定义 dfs(n): 格...

回答 1 投票 0

尝试递归地求多边形的面积

尝试使用鞋带定理递归计算多边形的面积并将其分成三角形。 公共静态双计算PolygonArea(ArrayList点){ ...

回答 1 投票 0

*动态*装饰Python中的递归函数

我有一个场景,我需要在Python中的函数内动态装饰递归调用。关键要求是动态实现这一点,而不需要修改当前的函数...

回答 1 投票 0

如何将菊花链/点表示法中的 JavaScript 对象展开为具有嵌套对象和数组的对象?

我想像这样展开一个物体...... var obj2 = { “名字”:“约翰”, “姓氏”:“绿色”, "car.make": "本田", "汽车.型号": "思域", “汽车.修订.0.英里”:10150, ...

回答 7 投票 0

可以采用什么结构来避免使用 RefCell?

我在 Rust 中创建了一些代码,应该允许我设置递归端口、具有源的端口、可能具有源的端口等。但是,由于借用问题,这是我实现此 str 的唯一方法...

回答 1 投票 0

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