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

wordpress4.8版权修改宁波seo服务快速推广

wordpress4.8版权修改,宁波seo服务快速推广,静态banner设计欣赏网站,网站建设的公司好做吗目录 OR59 字符串中找出连续最长的数字串题目解析解法(双指针遍历)代码 NC109 岛屿数量题目解析解法代码(dfs)dfs的实现 拼三角题目解析解法(枚举)代码 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 &…

目录

  • OR59 字符串中找出连续最长的数字串
    • 题目解析
      • 解法(双指针遍历)
        • 代码
  • NC109 岛屿数量
    • 题目解析
      • 解法
        • 代码(dfs)
        • dfs的实现
  • 拼三角
    • 题目解析
      • 解法(枚举)
        • 代码

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
🐒🐒🐒 个人主页
🥸🥸🥸 C语言
🐿️🐿️🐿️ C语言例题
🐣🐣🐣 python
🐓🐓🐓 数据结构C语言
🐔🐔🐔 C++
🐿️🐿️🐿️ 文章链接目录
🏀🏀🏀 笔试练习题

OR59 字符串中找出连续最长的数字串

OR59 字符串中找出连续最长的数字串

在这里插入图片描述

题目解析

这道题是找出最长连续的数字,并将这串数字以字符串的形式输出,解题的思路就是用两个指针(i和j)遍历这个字符串
在这里插入图片描述
当i指针第一次遇到数字字符时就将位置给到j指针
在这里插入图片描述
在这里插入图片描述
此时j往后开始去查找这个连续的数字字符串有多长,当j遇到不是数字字符的时候就表示这个连续的数字字符串已经找完了,要计算他的长度.这个长度的计算我们可以直接用两个变量去记录这个数字字符串的起始位置和长度
在这里插入图片描述

然后i变到j的下一个位置继续重复上面操作
在这里插入图片描述
当遇到字符串长度比之前的len要大的时候就更新begin和len

解法(双指针遍历)

代码
int main() {string s;cin >> s;int begin = -1, len = 0;for (int i = 0; i < s.size(); i++) {if (s[i] >= '0' && s[i] <= '9') {int j = i;while (j < s.size() && s[j] >= '0' && s[j] <= '9' ) {j++;}if (j - i > len) {len = j - i;begin = i;}i = j + 1;}}cout << s.substr(begin, len) << endl;return 0;
}

NC109 岛屿数量

NC109 岛屿数量
在这里插入图片描述

题目解析

根据题目描述下面的这个例子有3个岛屿
在这里插入图片描述
其中绿色圆圈圈起的数字虽然没有上下左右之间的关系,但是也是相连的岛屿
在这里插入图片描述

解法

这道题解法就是通过bfs/dfs搜索去寻找连通的岛屿并标记已经找到的岛屿

代码(dfs)
class Solution {public:int m, n;int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};bool vis[210][210] = {0};int solve(vector<vector<char> >& grid) {m = grid.size(), n = grid[0].size();int ret = 0;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (grid[i][j] == '1' && !vis[i][j]) {ret++;dfs(grid, i, j);}}}return ret;}};

因为这个岛屿需要上下左右的搜索,所以需要方向数组(之前的题也有类似的)
在搜索时需要进行标记已经搜索过的岛屿,所以要用一个bool类型的数组vis,因为岛屿矩阵的范围是200200,所以vis数组的范围我们应该选择大于200200的范围
二维数组的长和宽我们用m和n进行表示,ret来记录有多少个岛屿
通过两层for循环去遍历这个二维数组
然后用条件判断当grid[i][j]==1的时候表示这里有岛屿,且我们还要看这个岛屿是否之前已经被搜索过了,所以!vis[i][j]
条件符合时就让ret++记录这个岛屿,并且用dfs去标记周围连通的岛屿

dfs的实现
   void dfs(vector<vector<char>>& grid, int i, int j) {vis[i][j] = true;for (int k = 0; k < 4; k++) {int x = i + dx[k], y = j + dy[k];if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1'&&!vis[x][y]) {dfs(grid, x, y);}}}

进入dfs时grid[i][j]是有岛屿的,所以要进行标记
然后利用方向数组对grid[i][j]的周围进行搜索,并且要判断是否越界,当满足grid[x][y] == '1’和vis[x][y]没有被标记时就继续进入dfs(grid, x, y)

拼三角

拼三角
在这里插入图片描述

题目解析

题目意思就是给了6个棍子,但是这6个棍子的长度是不一样的,需要在选出3根来组成一个三角形的同时剩下的3根也能组成

解法(枚举)

因为这道题只给了6根棍子,所以搭配的方式比较少,我们可以把所有情况列出来
由排列组合可得所以的情况只有654/322=10种
具体我们可以用三重for循环去枚举,第一个for循环选第一根棍子,第二跟for循环选第二跟棍子,第三个for循环就选第三根棍子,在循环内部再检查是否能组成三角形
第二个方法就是用dfs去枚举

第三个方法就是优化后的枚举
我们知道三角形的判断条件如下
在这里插入图片描述
我们假设三个棍子长度分别为a b c
如果我们将这三个棍子长度进行排序,那么我们判断条件就会简单许多
假如a<b<c
在这里插入图片描述
那么我们就会发现判断条件就会少两个
在这里插入图片描述
所以我们对开始的6根棍子进行排序,排序过后就需要枚举以下的10种情况
在这里插入图片描述
当我们在枚举0 1 2和3 4 5的时候如果他们的条件成立就不需要再枚举后面的情况(因为已经满足条件了)
在这里插入图片描述
而如果枚举0 1 2和3 4 5的时候发现不满足条件那么他后面的几种情况就不需要再考虑(因为0+1<2那么0+1也同时<3)
在这里插入图片描述
所以根据上面的思路我们只需要枚举4种情况就可以了
在这里插入图片描述

代码
#include<iostream>
#include<algorithm>
using namespace std;
int t;
int arr[6];
int main()
{cin>>t;while(t--){for(int i=0;i<6;i++)cin>>arr[i];sort(arr,arr+6);if(arr[0]+arr[1]>arr[2]&&arr[3]+arr[4]>arr[5]||arr[0]+arr[2]>arr[3]&&arr[1]+arr[4]>arr[5]||arr[0]+arr[3]>arr[4]&&arr[1]+arr[2]>arr[5]||arr[0]+arr[4]>arr[5]&&arr[1]+arr[2]>arr[3])cout<<"Yes"<<endl;elsecout<<"No"<<endl;}return 0;
}
http://www.khdw.cn/news/42598.html

相关文章:

  • 泛微e8做网站门户查网址
  • 建工网和环球网哪个好seo网络营销技巧
  • 链天网站建设重庆网页搜索排名提升
  • 阿里云服务器在哪里百度seo排名点击软件
  • 男的和女的做那种事情网站线上营销活动有哪些
  • 阿里云做视频网站可以吗免费网络营销平台
  • 金华网站建设团队优化大师win7
  • 自己建立公司网站的步骤谷歌 chrome 浏览器
  • 湖州网站建设服务公司网上的推广公司
  • seo营销推广费用网站优化外包
  • 云南网站建设选天软网站如何进行优化
  • 东莞网站建设服务百度seo指南
  • 自己建设论坛网站电脑优化大师下载安装
  • 豆角网是哪个网站开发的职业技能培训学校
  • 建设电影网站难吗跨境电商平台哪个最好最可靠
  • 有哪些学校的网站做的好处网站seo 优化
  • 网站打开速度影响因素2022年新闻热点事件
  • 成都plc培训机构哪家最好太原seo关键词优化
  • 珠海网站建设企业友情链接购买
  • 网站类型定位酒店如何进行网络营销
  • 龙之向导外贸网站怎么样重庆seo优化公司
  • 凤岗网站设计网址域名查询
  • 搜索品牌价值的网站如何做网址
  • Wordpress网站防止采集长沙官网seo分析
  • 网站怎么做口碑网络培训seo
  • 做c2b的网站百度百度网址大全
  • 做外贸如何访问国外网站广告行业怎么找客户
  • 公司网站海报怎么做315影视行业
  • 建设银行官方投诉网站百度地图推广
  • 广东建设安全协会网站软件推广平台有哪些?哪个比较好