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

建站网址导航hao123连山网站建设

建站网址导航hao123,连山网站建设,广州陈村网站建设,铁盒 东莞网站建设题目 763. 划分字母区间 中等 相关标签 贪心 哈希表 双指针 字符串 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段#xff0c;同一字母最多出现在一个片段中。 注意#xff0c;划分结果需要满足#xff1a;将所有划分结果按顺序连接#xff0c;得…题目 763. 划分字母区间 中等 相关标签 贪心   哈希表   双指针   字符串 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段同一字母最多出现在一个片段中。 注意划分结果需要满足将所有划分结果按顺序连接得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 示例 1 输入s ababcbacadefegdehijhklij 输出[9,7,8] 解释 划分结果为 ababcbaca、defegde、hijhklij 。 每个字母最多出现在一个片段中。 像 ababcbacadefegde, hijhklij 这样的划分是错误的因为划分的片段数较少。 示例 2 输入s eccbbbbdec 输出[10]提示 1 s.length 500s 仅由小写英文字母组成 思路和解题方法 当我们遍历字符串S时我们使用哈希表hash来记录每个字符最后出现的位置。这样在遍历过程中我们可以通过查询哈希表来获取每个字符的最远边界。接下来我们使用两个指针left和right来表示当前分段的起始位置和结束位置。初始时它们都指向字符串的开头。在遍历过程中对于每个字符S[i]我们更新right的值为当前字符的最远边界即max(right, hash[S[i] - a])。这样right始终表示当前分段的结束位置。当我们遍历到一个位置i时如果i等于right说明当前位置是当前分段的结束位置。此时我们可以确定当前分段的长度为right - left 1将该长度加入结果数组并将left更新为下一个分段的起始位置即i 1。最终当遍历完成后我们得到了所有分段的长度将它们存储在结果数组中并返回。通过这种方法我们可以将字符串S划分为多个由不重叠子串组成的分段每个分段中的字符只会出现在该分段中。返回的结果数组即为每个分段的长度。这种解法的时间复杂度是O(n)其中n是字符串S的长度。因为我们需要遍历整个字符串S一次并在每个位置查询哈希表哈希表的查询操作时间复杂度是O(1)。总结起来该算法通过使用哈希表和双指针的方式实现了对字符串S的划分找到了所有不重叠的子串并返回了每个子串的长度。 复杂度 时间复杂度: O(n) 时间复杂度是O(n)其中n是字符串S的长度。代码中有两个循环第一个循环用于统计每个字符最后出现的位置第二个循环用于遍历字符串S并找到每个分割点。 空间复杂度 O(1) 空间复杂度是O(1)因为使用了一个固定大小的哈希表hash来存储字符的最后出现位置哈希表的大小是固定的不随输入规模变化。另外返回的结果是一个vector其大小取决于输入字符串中的分割点数量但不会超过字符串S的长度。因此可以将空间复杂度视为常数级别。 c 代码 class Solution { public:vectorint partitionLabels(string S) {int hash[27] {0}; // i为字符hash[i]为字符出现的最后位置for (int i 0; i S.size(); i) { // 统计每一个字符最后出现的位置hash[S[i] - a] i;}vectorint result;int left 0; // 当前分段的起始位置int right 0; // 当前分段的结束位置for (int i 0; i S.size(); i) {right max(right, hash[S[i] - a]); // 找到字符出现的最远边界if (i right) { // 当前位置是当前分段的结束位置result.push_back(right - left 1); // 将当前分段的长度加入结果数组left i 1; // 更新下一个分段的起始位置}}return result;} };觉得有用的话可以点点赞支持一下。 如果愿意的话关注一下。会对你有更多的帮助。 每天都会不定时更新哦  人  。
http://www.tj-hxxt.cn/news/141247.html

相关文章:

  • 呼和浩特网站建设费用html编辑器怎么用
  • 销售网站的技巧镇江网友之家手机版
  • 纪检监察工作 网站建设抖音代运营合同范标准版
  • 做服装外单的网站有哪些网站logo代码
  • 珠海门户网站建设山东莱芜金点子信息港
  • 做暧暧视频免费视频中国网站上海网站建设seo1888
  • 自学摄影教程的网站有哪些中国建设银行个人登录
  • 郑州网站建设公司如何公众号开发专业
  • 建立一个网站的流程wordpress图片变小了
  • 怎么做页眉网络优化工程师是干什么的
  • 北京做网站推广多少钱网页制作背景颜色
  • 怎么自己做微网站吗网页设计html代码大全空格
  • 建站专业定制炫酷wordpress主题
  • 网站收录怎么删外贸网站建设价格怎么样
  • 万宁网站建设公司wordpress ping服务列表
  • html5自建网站小程序制作二维码
  • 南宁网站建设索王道下拉wordpress系列教程
  • 国内flask做的网站小程序商城代运营
  • 网站优化新闻kangle搭建wordpress
  • 网站访客代码js多站点cms
  • 网站免费做招生宣传语玉器珠宝做网站
  • 用瀑布流做的美食网站课程网站建设技术
  • 公司做的网站列入什么科目代理游戏
  • 在印度做视频网站阿里云建网站流程
  • 网站首页排名下降域名批量注册查询
  • 重庆网站建设夹夹虫公司.很好开发一款手机app软件需要多少钱
  • 移动终端网站建设新品发布会宣传文案
  • 东莞企业建站程序网站开发与管理心得体会
  • 网站制作台州黄岛建设厅官方网站
  • 网站建设运营执行方案河南网站建设推广运营