常见算法
递归,迭代 递归(Recursion):函数调用自身 迭代(Iteration):通过循环结构重复执行代码块 排序算法 详见:[[排序算法]] 搜索算法 二分查找 33. 搜索旋转排序数组 中等,二分查找变体 深度优先搜索(DFS) 递归实现: def dfs_recursive(graph, start): visited = set() def dfs(node): if node in visited: return visited.add(node) print(node) # 处理节点 for neighbor in graph[node]: dfs(neighbor) dfs(start) return visited 用栈实现: def dfs_iterative(graph, start): visited = set() stack = [start] while stack: node = stack.pop() # 弹出栈顶 if node not in visited: visited.add(node) print(node) # 处理节点 # 将未访问的邻居压栈(注意:倒序压栈保证遍历顺序与递归一致) for neighbor in reversed(graph[node]): if neighbor not in visited: stack.append(neighbor) return visited 329. 矩阵中的最长递增路径 - 力扣(LeetCode) ...