当前位置: 首页 > 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.yayakq.cn/news/995736/

相关文章:

  • 做贸易 公司网站放哪里怎么建网站视频
  • md5 wordpress上优化
  • 广东建设注册执业中心网站跨境电商信息服务平台有哪些
  • 南京定制网站建设怎么收费成都青羊区网站建设
  • 撤销网站备案申请书wordpress统计工具
  • 用动易做的校园网站南阳网站制作
  • 南昌个人做网站营业执照不干了不注销会怎样
  • 住建部城乡建设网站有什么做设计接任务的网站
  • 手机搭建网站教程视频iis网站视频无法播放
  • 做视频的网站有哪些大型门户网站建设工作总结
  • 科技网站设计欣赏服务佳的广州网站建设
  • 网站建设网页设计师安徽茶叶网站建设
  • 怎么创建网站充值和提现账号各国网站的域名
  • 中国建设报网站库车县建设网站
  • 网站开发与设计需要哪些技术wordpress用户登录设置
  • 网站开发的职业决策网站建设公司怎么开
  • 南昌做企业网站西宁最好的建站公司
  • 杭州网站建设设计公司深圳招聘一般在哪个网站
  • 苏州著名网站建设网站怎么申请域名
  • 实验教学网站的建设研究微信小店可以做分类网站
  • 重庆网站建公司大全深圳网站设计公司哪种
  • 个人简介网站源码淄博网站建设推广
  • 什么装修网站做的好的高清品牌网站设计建设
  • 聊城做网站哪里好盐城网站建设厂商
  • 网站设计赚钱吗做有网被视频网站吗
  • wordpass建设网站流程wordpress 自定义插件
  • 展会网站模板绿色系网站
  • 电子商务网站建设方案书千库网免费素材图库
  • 做平面什么网站的素材不侵权南京网站设计我选柚米科技
  • 竞价托管外包公司淘宝关键词优化技巧教程