当前位置: 首页 > news >正文

淄博的大型网站建设交换友情链接的渠道

淄博的大型网站建设,交换友情链接的渠道,网站开发超链接点击后变色,网站源码推荐矩阵中的路径(回溯)/pair的学习问题分析示例代码pair学习问题 来自力扣: 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按…

矩阵中的路径(回溯)/pair的学习

  • 问题
  • 分析
  • 示例代码
  • pair学习

问题

来自力扣:

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 "ABCCED"(单词中的字母已标出)。

在这里插入图片描述

示例 1:
输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
输出:true
示例 2:
输入:board = [["a","b"],["c","d"]], word = "abcd"
输出:false提示:
m == board.length
n = board[i].length
1 <= m, n <= 6
1 <= word.length <= 15
board 和 word 仅由大小写英文字母组成

分析

这题型,很明显,就是回溯。定义一个查找函数,然后,递归调用。最近被一些别的事困扰,没心思自己写,偷懒直接看示例代码了。

示例代码

class Solution {
public:bool check(vector<vector<char>>& board, vector<vector<int>>& visited, int i, int j, string& s, int k) {if (board[i][j] != s[k]) {return false;} else if (k == s.length() - 1) {return true;}visited[i][j] = true;vector<pair<int, int>> directions{{0, 1}, {0, -1}, {1, 0}, {-1, 0}};bool result = false;for (const auto& dir: directions) {int newi = i + dir.first, newj = j + dir.second;if (newi >= 0 && newi < board.size() && newj >= 0 && newj < board[0].size()) {if (!visited[newi][newj]) {bool flag = check(board, visited, newi, newj, s, k + 1);if (flag) {result = true;break;}}}}visited[i][j] = false;return result;}bool exist(vector<vector<char>>& board, string word) {int h = board.size(), w = board[0].size();vector<vector<int>> visited(h, vector<int>(w));for (int i = 0; i < h; i++) {for (int j = 0; j < w; j++) {bool flag = check(board, visited, i, j, word, 0);if (flag) {return true;}}}return false;}
};

官方的解释:
在这里插入图片描述

pair学习

代码中有pair,这让我回想起之前用map的时候,好像用过pair,但并不了解它。
学习内容参考这两篇:C++ pair的基本用法总结(整理)和老卫带你学—C++中map与pair的区别

pair:将2个数据组成一对数据。它是结构体,不是类。即它是同struct定义的。
使用前需要include一个头文件#include<utility>
模板:template<class T1,class T2> struct pair
定义和访问(用公有函数first和sencond访问):

	pair<int, int> a= { 1,5 };pair<int, int> b( 1,5 );pair<int, int>  c = make_pair(1, 5);cout << a.first <<"  "<< a.second << " ";cout << b.first <<"  "<< b.second << " ";cout << c.first <<"  "<< c.second << " ";//结果1  5 1  5 1  5

与map的区别:map是容器,pair可以生成一个一个的pair然后放入容器map中。

同样的,pair定义的变量,可以用其他容器如vector来存放。

http://www.yidumall.com/news/62286.html

相关文章:

  • 推荐一下做图文的网站百度上看了不健康的内容犯法吗
  • wordpress 虚幻大学惠州seo代理
  • 鲅鱼圈做网站网工资页多少钱一个月seo快速建站
  • 大理公司网站建设爱站网seo工具
  • 国家信息企业信用公示网seo专业学校
  • php网站中水印怎么做网络舆情管理
  • 课程设计代做网站php发布新闻最快的网站
  • 怎样建立自己的网站卖东西竞价托管推广哪家好
  • 临淄网站建设公司网站seo优化发布高质量外链
  • 电销系统开发搜外seo视频 网络营销免费视频课程
  • 贵州省城乡与住房建设部网站广州优化营商环境条例
  • 网站建设的方案实施包括网络营销课程感悟
  • 汽车之家网站系统是什么做的seo知识总结
  • 自己做彩票网站犯法吗推广软文300字范文
  • 无锡建设网站制作东营网站建设
  • 个人注册域名和公司注册域名区别天津网站seo设计
  • 成都网站建设新闻优化网站推广排名
  • 企业移动网站制作沪深300指数基金
  • 网站开发与应用案例教程百度竞价推广有哪些优势
  • 桓台县旅游网站建设苹果看国外新闻的app
  • 重庆城乡建设委员会网站百度指数的搜索指数
  • 分工做网站如何网站建设与优化
  • vs做网站怎么调试深圳网站制作设计
  • 天津网页制作设计营销网络优化工程师是做什么的
  • 旧宫做网站的公司上海平台推广的公司
  • 做网站都用什么软件推广项目的平台
  • 机关网站建设方案html底部友情链接代码
  • 传奇私服广告网站怎么做成都网站制作关键词推广排名
  • 如何通过axure做网站网络上如何推广网站
  • 辽宁官方网站做辣白菜谷歌seo博客