代码随想录算法训练营第九天|841. 钥匙和房间|463. 岛屿的周长|459. 重复的子字符串

news/2024/11/28 19:22:33/

841. 钥匙和房间

class Solution {
public:bool canVisitAllRooms(vector<vector<int>>& rooms) {queue<vector<int>>que;vector<bool>visited(rooms.size(),false);que.push(rooms[0]);visited[0]=true;while(!que.empty()){vector<int>vec=que.front();que.pop();for(int i=0;i<vec.size();i++){if(visited[vec[i]]==false){que.push(rooms[vec[i]]);visited[vec[i]]=true;}}}for(int i=0;i<visited.size();i++){if(visited[i]==false)return false;}return true;}
};

463. 岛屿的周长

class Solution {int xianglin(vector<vector<int>>& grid,int i,int j){int count =0;if(i>0&&grid[i-1][j]==1)count++;if(i<grid.size()-1&&grid[i+1][j]==1)count++;if(j>0&&grid[i][j-1]==1)count++;if(j<grid[0].size()-1&&grid[i][j+1]==1)count++;return 4-count;}
public:int islandPerimeter(vector<vector<int>>& grid) {int res=0;for(int i=0;i<grid.size();i++){for(int j=0;j<grid[0].size();j++){if(grid[i][j]==1){res+=xianglin(grid,i,j);}}}return res;}
};

459. 重复的子字符串

考察kmp算法,难点是构造理解前缀表数组,前缀表里面的数字代表和前一个比他的重复情况,前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。

class Solution {void getnext(int* next, const string& s){next[0]=0;int j=0;for(int i=1;i<s.size();i++){while(j>0&&s[i]!=s[j]){j=next[j-1];}if(s[i]==s[j]){j++;}next[i]=j;}}
public:bool repeatedSubstringPattern(string s) {if(s.size()==0)return false;int next[s.size()];getnext(next,s);int len = s.size();if (next[len - 1] != 0 && len % (len - (next[len - 1] )) == 0) {return true;}return false;}
};

28. 实现 strStr()

class Solution {void getnext(int *next,const string&haystack){next[0]=0;int j=0;for(int i=1;i<haystack.size();i++){while(j>0&&haystack[i]!=haystack[j]){j=next[j-1];}if(haystack[i]==haystack[j])j++;next[i]=j;}}
public:int strStr(string haystack, string needle) {if(needle.size()==0)return 0;int next[needle.size()];getnext(next,needle);int j=0;for(int i=0;i<haystack.size();i++){while(j>0&&haystack[i]!=needle[j]){j=next[j-1];}if(haystack[i]==needle[j])j++;if(j==needle.size()){return i-j+1;}}return -1;}
};

http://www.ppmy.cn/news/1086725.html

相关文章

基于Java的ssm高校教学业绩信息管理系统源码和论文

基于Java的ssm高校教学业绩信息管理系统源码和论文122 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存…

hadoop-HDFS

1.HDFS简介 2.1 Hadoop分布式文件系统-HDFS架构 2.2 HDFS组成角色及其功能 &#xff08;1&#xff09;Client&#xff1a;客户端 &#xff08;2&#xff09;NameNode (NN)&#xff1a;元数据节点 管理文件系统的Namespace元数据 一个HDFS集群只有一个Active的NN &#xff…

jmeter setUp Thread Group

SetUp Thread Group 是一种特殊类型的线程组&#xff0c;它用于在主测试计划执行之前执行一些初始化任务。 SetUp Thread Group 通常用于以下几种情况&#xff1a; 用户登录&#xff1a;在模拟用户执行实际测试之前&#xff0c;模拟用户登录到系统以获取访问权限。 创建会话&a…

2023年7月婴幼儿辅食市场数据分析(京东商品数据)

随着人们对婴幼儿饮食健康的关注不断增加&#xff0c;市场对高品质、安全、营养丰富的辅食需求也日益旺盛。婴幼儿辅食市场增长放缓&#xff0c;但整体仍保持上升态势。鲸参谋数据显示&#xff0c;今年7月份&#xff0c;京东平台婴幼儿辅食市场的销量为1000万&#xff0c;同比增…

LED电子显示屏的异步图文控制技术

LED电子显示屏的异步图文控制技术是一种用于控制LED显示屏的技术&#xff0c;它允许用户在显示屏上显示不同的文本、图像和动画&#xff0c;而无需连续的计算机连接或实时数据传输。这种技术通常用于广告牌、大屏幕显示、体育场馆和其他需要大型图文显示的应用。 以下是LED电子…

问道管理:证券市场也有中介机构吗?他们具体干什么?

证券市场是一个很大的发行流通生意市场&#xff0c;在这个市场上&#xff0c;有许许多多不同的生意主体。而有生意就会有中介&#xff0c;证券市场上也有中介组织吗&#xff1f;如果有&#xff0c;他们具体又是干什么的&#xff1f;关于这些&#xff0c;问道管理为我们预备了以…

SQL注入-盲注 Burp盲注方法

文章目录 判断库名位数Burp 抓取数据包设置payload位置设置payload 1设置payload 2点击开始攻击 判断库名下表名的位数Burp 抓取数据包点击开始攻击 判断库名下第二张表名判断表名下的字段名判断表中具体数据 什么是盲注&#xff1f; 有时目标存在注入&#xff0c;但在页面上没…

F#奇妙游(26):计算表达式浅尝

computation expression之一问三不知 计算表达式是一个有点难理解的东西。我把帮助全部看了一遍&#xff0c;记住了个上下文敏感的计算&#xff08;contex-sensitive computation&#xff09;。但是让我讲计算表达式是什么&#xff1f;为什么&#xff1f;怎么做&#xff1f;我…