分享好友 行情首页 行情分类 切换频道
递归、搜索与回溯算法:综合练习
2024-12-23 12:45  浏览:70
解法
算法思路
我们需要假设每个位置的元素作为第⼀个字⺟,然后向相邻的四个⽅向进⾏递归,并且不能出现重复使⽤同⼀个位置的元素。通过深度优先搜索的⽅式,不断地枚举相邻元素作为下⼀个字⺟出现的可能性,并在递归结束时回溯,直到枚举完所有可能性,得到正确的结果。
递归函数设计bool dfs(vector<vector<char>>& board,int i,int j,string& word,int pos)
参数:i(当前需要进⾏处理的元素横坐标,j(当前需要进⾏处理的元素横坐标,pos(当前已
经处理的元素个数,word(字符串
函数作⽤:判断当前坐标的元素作为字符串中下标 pos 的元素出现时,向四个⽅向传递,查找是否存在路径结果与字符串相同。
递归函数流程
1. 遍历每个位置,标记当前位置并将当前位置的字⺟作为⾸字⺟进⾏递归,并且在回溯时撤回记。
2. 在每个递归的状态中,我们维护⼀个步数 pos,表⽰当前已经处理了⼏个字⺟。
若当前 pos 的值与字符串⻓度相等,表⽰存在⼀种路径使得 word 成⽴,返回 true。
3. 对当前位置的上下左右四个相邻位置进⾏递归,若递归结果为 true,则返回 true。
4. 若相邻的四个位置的递归结果都为 false,则返回 false。
特别地,如果使⽤将当前遍历到的字符赋值为空格,并在回溯时恢复为原来的字⺟的⽅法,则在递归时不会重复遍历当前元素,可达到不使⽤标记数组的⽬的。
解法
算法思路
对于四个⽅向,我们可以定义两个一维数组 dx,dy ,⼤⼩为 4 ,每⼀维存储四个⽅向的坐标偏移量 (详⻅代码)。题⽬要求到达⽬标位置时所有⽆障碍⽅格都存在路径中,我们可以定义⼀个变量记录 num 当前状态中剩余的未⾛过的⽆障碍⽅格个数,则当我们⾛到⽬标地点时只需要判断 num 是否为 0 即可。在移动时需要判断是否越界。
全局变量
vector<vector<bool>> visited;
int m, n;
int ret,cou=0;    以上就是本篇文章【递归、搜索与回溯算法:综合练习】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/2830.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
下载qq游戏大厅手机版
  下载QQ游戏大厅手机版——尽享移动游戏乐趣  随着科技的飞速发展,手机已经成为我们日常生活中不可或缺的一部分。我们利用
lgg8手机(lgg8手机怎么样质量好么)
  LG G8手机:技术与设计的完美结合  LG G8手机是LG公司推出的一款集先进技术与创新设计于一体的智能手机。这款手机不仅在技
便宜的手机套餐(便宜的手机套餐可靠吗)
  关于《便宜的手机套餐》的文章  随着科技的快速发展,手机已经成为了我们日常生活中不可或缺的一部分。为了迎合广大消费者
好玩的生存游戏手机(好玩的生存类游戏手机版)
  《好玩的生存游戏手机》  随着智能手机的普及,各种手机游戏应运而生,其中生存游戏因其独特的游戏机制和吸引力,成为了众
手机了(手机没有声音怎么办? 音量已经打开了苹果)
  手机:现代生活的无缝融入  随着科技的飞速发展,手机已经成为了我们日常生活中不可或缺的一部分,它深刻地改变了我们的生
京东手机通讯(京东手机通讯自营专区怎么样)
  《京东手机通讯:连接你我,畅享科技新时代》  随着科技的飞速发展,手机已经成为我们日常生活中不可或缺的一部分。在这个
华为手机性价比最高的(华为手机性价比最高的是哪一款5g)
  华为手机性价比最高的产品分析  随着科技的飞速发展,智能手机已经成为人们日常生活中不可或缺的一部分。在众多手机品牌中
同步手机助手(同步手机助手下载)
  《同步手机助手》:连接数字生活的桥梁  随着科技的飞速发展,智能手机已成为我们日常生活中不可或缺的一部分。我们的生活
手机上做ppt的软件(手机上做ppt的软件免费下载)
  随着科技的进步和移动互联网的发展,手机已经成为我们日常生活中不可或缺的一部分。在这个数字化的时代,我们不仅可以在电脑
iphone x手机(iphonex手机换屏幕)
  iPhone X手机:科技与艺术的完美结合  自iPhone首次登场以来,它不仅仅是一部手机,更是科技与艺术的结晶。而其中的iPhone
发表评论
0评