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

品牌推广公司简介怎么关闭seo综合查询

品牌推广公司简介,怎么关闭seo综合查询,编程和做网站有关系吗,西安网站排名优化💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:C经典例题 期待您的关注 目录 问题描述 解题方法 方法一:暴力解法 解题思路 代码实现 复杂度分析 方法二&#xf…

           💓 博客主页:倔强的石头的CSDN主页 

           📝Gitee主页:倔强的石头的gitee主页

            ⏩ 文章专栏:C++经典例题

                                  期待您的关注

 

目录

 

问题描述

解题方法

方法一:暴力解法

解题思路

代码实现

复杂度分析

 

方法二:计数排序解法

解题思路

代码实现

复杂度分析

 

总结


 

 

 

问题描述

给定一个只包含小写字母的字符串 s,我们的目标是找到它的第一个不重复的字符,并返回该字符在字符串中的索引。如果字符串中不存在这样的字符,则返回 -1。

  • 1 <= s.length <= 105
  • s 只包含小写字母

例如:

  • 对于字符串 "leetcode",字符 'l' 是第一个不重复的字符,其索引为 0,所以应返回 0。
  • 对于字符串 "loveleetcode",字符 'v' 是第一个不重复的字符,其索引为 2,所以应返回 2。
  • 对于字符串 "aabb",不存在不重复的字符,所以应返回 -1。

 

解题方法

方法一:暴力解法

解题思路

暴力解法的核心思想是对字符串中的每个字符,都遍历整个字符串,检查是否存在与它相同的其他字符。如果在遍历过程中没有找到相同的字符,那么该字符就是第一个不重复的字符,返回其索引;如果遍历完所有字符都没有找到不重复的字符,则返回 -1

 

代码实现

class Solution {
public:int firstUniqChar(string s) //暴力解法{int size = s.size();for (int i = 0; i < size; ++i){int flag = 1;for (int j = 0; j < size; ++j){if ((s[i] == s[j]) && (i != j))//如果有相同的字符,就结束这轮对比{flag = 0;break;}}if (flag == 1)//循环走完,标志没有被改变,说明没有相同的字符return i;}return -1;}
};

复杂度分析

  • 时间复杂度:(O(n^2)),其中 (n) 是字符串的长度。因为对于每个字符,都需要遍历整个字符串来检查是否有重复。当字符串很大时,这种方式会暴露出极大的效率问题
  • 空间复杂度:(O(1)),只使用了常数级的额外空间。

方法二:计数排序解法

解题思路

由于字符串只包含小写字母,小写字母一共有 26 个,我们可以使用一个长度为 26 的数组来记录每个字母在字符串中出现的次数。首先遍历字符串,统计每个字母的出现次数;然后再次遍历字符串,找到第一个出现次数为 1 的字母,并返回其索引;如果遍历完都没有找到,则返回 -1。

 

对于计数排序的详细讲解,可以参考我的另一篇文章:
【数据结构与算法】详解计数排序:小范围整数排序的最佳选择-CSDN博客

 

代码实现

class Solution {
public:int firstUniqChar(string s) //计数排序解法{int count[26] = {0};//创建数组映射存储次数,初始化为 0int size = s.size();for (int i = 0; i < size; ++i)//第一次遍历,记录次数{++count[s[i] - 'a'];}for (int i = 0; i < size; ++i)//第二次遍历,找到第一个只出现一次的字母{if (count[s[i] - 'a'] == 1)return i;}return -1;//走到这里说明不存在}
};

复杂度分析

  • 时间复杂度:(O(n)),其中 (n) 是字符串的长度。需要遍历字符串两次,每次遍历的时间复杂度都是 (O(n))。
  • 空间复杂度:(O(1)),因为只使用了一个长度为 26 的数组,无论字符串多长,额外空间都是常数级的。

 

总结

暴力解法虽然简单直接,但时间复杂度较高,对于较长的字符串效率较低;

而计数排序解法利用了字符串只包含小写字母的特点,通过额外的数组来记录字母出现的次数,将时间复杂度优化到了线性级别,在处理大规模数据时性能更优。

 

在实际应用中,满足数据量大且范围相对集中的情况,我们应该优先选择计数排序这种高效的解法

 

http://www.dtcms.com/wzjs/491182.html

相关文章:

  • 1网站建设做网站优化推广
  • ap课程培训哪家机构好seo公司推荐推广平台
  • 网站建立网站网推放单平台
  • 网站自助建设平台苏州网站制作开发公司
  • 网站开发维护合同模板电子版世界搜索引擎公司排名
  • 天津正规制作网站公司360推广平台登录入口
  • wordpress展示图片不显示长沙企业seo服务
  • 南通市交通建设处网站互动营销的案例及分析
  • 自己做网站不想买空间 自己电脑可以做服务器吗?网站seo排名优化
  • 出版社类网站模板seo的内容怎么优化
  • 濮阳网站建设陈帅中国十大营销策划公司排名
  • 做外贸公司网站快速排名优化推广价格
  • 网络营销理论有哪些内容郑州seo顾问
  • 网站建设有几种方法网络推广业务
  • wordpress获取新密码错误seo算法是什么
  • 做的网站百度搜索不出来谷歌查询关键词的工具叫什么
  • 深圳企业网站制作公司介绍合肥关键词排名技巧
  • 给小公司做网站赚钱么百度首页百度一下
  • 宁夏手机网站建设seo网站优化快速排名软件
  • 互动网站如何做外贸如何做网站推广
  • 出口退税在哪个网站做北京seo排名技术
  • 崇信县门户网站首页什么是seo
  • 高平做网站北京网站建设开发公司
  • 怎样创办网站网站关键词优化
  • sydney wordpress主题seo1新地址在哪里
  • 台北网站建设seo搜索引擎优化教程
  • 便宜的vps租用网站免费b站推广网站详情
  • 樟木头镇网站建设公司私人做网站建设
  • 怎么维护网站什么是网络推广员
  • html5网站源代码潍坊今日头条新闻