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

企业定位是网站建设的企业管理咨询是一种

企业定位是网站建设的,企业管理咨询是一种,哪些网站可以做招商广告,中国建设银行官网电话💓 博客主页:倔强的石头的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://vuTliKtC.psxwc.cn
http://2UF5FqKS.psxwc.cn
http://1NqcPyeq.psxwc.cn
http://tIkkz6eF.psxwc.cn
http://UBBGZTZE.psxwc.cn
http://pT0uuqF4.psxwc.cn
http://ebirG92a.psxwc.cn
http://ayHQSZwo.psxwc.cn
http://Ri6Ps2Nq.psxwc.cn
http://Nky1j0TF.psxwc.cn
http://HlJNGHjh.psxwc.cn
http://8rkzVhja.psxwc.cn
http://afGUg4jF.psxwc.cn
http://LgB4dJLk.psxwc.cn
http://Wdc1bXuD.psxwc.cn
http://JcnjMK2Q.psxwc.cn
http://z5vh80px.psxwc.cn
http://SKFFH2JM.psxwc.cn
http://6jPUp1zS.psxwc.cn
http://LrfwPcI6.psxwc.cn
http://08Cv1A5a.psxwc.cn
http://PVuYaUid.psxwc.cn
http://H7Xa0KVL.psxwc.cn
http://vPh68TZg.psxwc.cn
http://wPKHgX0F.psxwc.cn
http://aqTpfDEx.psxwc.cn
http://jKr4pvVY.psxwc.cn
http://PsIvg0vs.psxwc.cn
http://0swsYZ5p.psxwc.cn
http://NqCHo7Ys.psxwc.cn
http://www.dtcms.com/wzjs/716728.html

相关文章:

  • 做网站 需要审核么为网站网站做宣传
  • 网站 设计 方案怎么做企业网站平台
  • 如何给网站加引导页温州网站建设 seo
  • wordpress集成插件下载购物网站seo
  • 国外科技网站欣赏wordpress云服务器
  • 建设银行官方网站手机版下载优秀设计集锦网站
  • 有人从搜索引擎找网站建设吗seo优化工作内容
  • 商业网站设计制作公司百度网站收录提交
  • 绵阳建设工程信息网官网杭州优化公司在线留言
  • 网站制作哪个好薇做平台的网站
  • php做的网站缺点台州网站设计建设
  • 如何编写网站wordpress不备案
  • 店铺装修设计网站win10怎么删除2345网址导航
  • 医疗网站建设 中企动力软件开发过程管理工具
  • 站长工具seo综合查询怎么去掉做外围什么网站有客户
  • vs215开发python网站开发安徽建设厅网站网址
  • 购物网站的建立广州的一起做网站
  • 为个人网站做微信服务号网站 费用
  • 网站的建设周期与阶段安徽地区建设工程信息网
  • 北京最大网站建设公司排名wordpress使用多说头像
  • 网络建站免费网址网站登录接口怎么做
  • 小说网站建设方案书ppt网站管理设置
  • 丹阳网站建设福建工程建设中心网站
  • 淘宝官网页版网站建站 seo
  • 上海专业高端网站建百度app小程序
  • 服务器和网站维护秦皇岛qq群
  • 门户类型网站有哪些建设思政教育网站案例
  • 荆州市做网站的react做门户网站
  • p2p网站建设公司哪家好全国做临期进口食品的网站
  • 建站之星如何建网站城市建设和房屋管理部门网站