找到 13 篇文章 关于回溯算法

数据结构中的层序遍历

Arnab Chakraborty
更新于 2019-08-27 11:34:58

373 次浏览

在本节中,我们将了解二叉搜索树的层序遍历技术。假设我们有一棵这样的树:遍历顺序将如下所示:10、5、16、8、15、20、23算法levelOrderTraverse(root):开始    定义队列que来存储节点    将根节点插入队列。    当队列不为空时,执行       item := 队列前端的元素       打印item的值       如果item的左子节点不为空,则          将item的左子节点插入队列       结束 ... 阅读更多

回溯算法简介

karthikeya Boyini
更新于 2019-07-30 22:30:23

1K+ 次浏览

回溯是一种通过增量方式解决问题的算法技术。它使用递归方法来解决问题。我们可以说回溯用于找到解决优化问题的所有可能组合。在本节中,我们将介绍哈密顿回路、M着色问题、N皇后问题、迷宫中的老鼠问题、密码算术谜题、子集和问题、数独求解算法、骑士巡游问题、拔河问题、单词拆分算法、交换数字得到最大数问题

交换数字得到最大数

karthikeya Boyini
更新于 2020-06-16 09:39:27

473 次浏览

在这个问题中,给定一个正整数字符串,我们需要通过交换数字k次到不同的位置,找到其值最大的排列。我们将通过选择一个数字并将其与后面的数字依次交换来解决这个问题,以找到最大数。我们重复这个过程k次。回溯策略在这里起作用,因为当我们找到一个不大于前一个值的数字时,我们会回溯到旧值并再次检查。输入和输出输入:一个多位数字。输入为:129814999输出:最大值 ... 阅读更多

单词拆分问题

Samual Sam
更新于 2020-06-16 09:42:44

518 次浏览

在这个问题的输入中,给定一个没有空格的句子,还提供了一个包含一些有效英文单词的字典。我们需要找到将句子拆分为单个字典单词的所有可能方法。我们将尝试从字符串的左侧搜索以找到一个有效的单词,当找到一个有效的单词时,我们将搜索该字符串下一部分中的单词。输入和输出输入:作为字典的一组有效单词,以及一个字符串,其中不同的单词不带空格放置。字典:{mobile, sam, sung, man, mango, icecream, and, go, i, love, ... 阅读更多

拔河算法

karthikeya Boyini
更新于 2020-06-16 09:44:58

720 次浏览

在这个问题中,给定一组整数,我们需要将它们分成两部分,使得两个子集的和的差尽可能小。因此,我们的目标是将两组实力几乎相等的队伍分成两组,以参加拔河比赛。如果子集n的大小为偶数,则必须将其分成n/2,但对于n的奇数值,则一个子集的大小必须为(n-1)/2,另一个子集的大小必须为(n+1)/2。输入和输出输入:一组不同的权重。{23, 45, -34, 12, 0, ... 阅读更多

骑士巡游问题

Samual Sam
更新于 2020-06-16 09:51:09

4K+ 次浏览

在国际象棋中,我们知道骑士可以以特殊的方式跳跃。它可以在每个方向上水平移动两个方格和垂直移动一个方格,或者垂直移动两个方格和水平移动一个方格,因此完整的移动看起来像英文字母“L”。在这个问题中,有一个空的棋盘,以及一个从棋盘上的任何位置开始的骑士,我们的任务是检查骑士是否可以访问棋盘上的所有方格。当它可以访问所有方格时,则放置到达该位置所需的跳跃次数 ... 阅读更多

数独求解算法

Sharon Christine
更新于 2020-06-16 07:04:00

3K+ 次浏览

在本节中,我们将尝试解决著名的数字迷宫问题,称为数独。数独是一个9 x 9的数字网格,整个网格也分成3 x 3的方块。有一些规则来解决数独。我们需要使用数字1到9来解决这个问题。一个数字不能在同一行、同一列或同一个3 x 3的方块中重复出现。使用回溯算法,我们将尝试解决数独问题。当某个单元格填入一个数字时,它会检查该数字是否有效。当它 ... 阅读更多

子集和问题

karthikeya Boyini
更新于 2020-06-16 07:09:28

15K+ 次浏览

在这个问题中,给定一个包含一些整数元素的集合。并且还提供了另一个值,我们需要找到给定集合的一个子集,其和等于给定的和值。这里使用回溯方法来尝试选择一个有效的子集,当一个项无效时,我们将回溯以获取前一个子集并添加另一个元素以获得解决方案。输入和输出输入:此算法接收一组数字和一个和值。集合:{10, 7, 5, 18, 12, 20, 15}和值:35输出:所有 ... 阅读更多

解决密码算术谜题

Sharon Christine
更新于 2020-06-16 07:16:15

14K+ 次浏览

在密码算术问题中,一些字母用于为其分配数字。例如,十个不同的字母持有从0到9的数字值,以正确执行算术运算。给定两个单词,以及另一个单词作为这两个单词加法的答案。例如,我们可以说两个单词“BASE”和“BALL”,结果是“GAMES”。现在,如果我们尝试通过它们的符号数字将BASE和BALL相加,我们将得到答案GAMES。注意&minuns; 最多只能有十个字母,否则无法解决。输入和输出输入:此算法将 ... 阅读更多

迷宫中的老鼠问题

karthikeya Boyini
更新于 2020-06-16 07:23:16

5K+ 次浏览

在这个问题中,给定一个大小为 N x N 的迷宫。起点和终点分别位于左上角单元格和右下角单元格。一些单元格可以通行,一些单元格被堵塞。如果一只老鼠从起点开始移动到终点,我们需要找到是否有任何路径可以完成,如果可能,则标记老鼠的正确路径。迷宫使用二进制矩阵给出,其中标记为 1 表示有效路径,否则为 0 表示堵塞单元格。注意:老鼠可以... 阅读更多

广告
© . All rights reserved.