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

做PHP网站前端网站进不去台州企业网站

做PHP网站前端网站进不去,台州企业网站,正邦设计招聘,苏州品牌网站建设❓剑指 Offer 48. 最长不含重复字符的子字符串 难度#xff1a;中等 请从字符串中找出一个最长的不包含重复字符的子字符串#xff0c;计算该最长子字符串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”#xff0c;所以其长度为…❓剑指 Offer 48. 最长不含重复字符的子字符串 难度中等 请从字符串中找出一个最长的不包含重复字符的子字符串计算该最长子字符串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”所以其长度为 3。 请注意你的答案必须是 子串 的长度“pwke” 是一个子序列不是子串。 提示 s.length 40000 注意本题与 3. 无重复字符的最长子串 相同。 思路动态规划 定义 dp 数组dp[i] 代表以字符 s[i] 为结尾的 “最长不重复子字符串” 的长度。 固定右边界 i 设字符 s[i] 左边距离最近的相同字符为 s[j] 即 s[j] s[i]。 当 i 0 即 s[i] 左边无相同字符则 dp[i] dp[i−1] 1当 dp[i−1] i - j说明字符 s[i] 在子字符串 dp[i−1] 区间之外 则 dp[i] dp[i−1] 1当 dp[i−1] ≥ i - j 说明字符 s[j] 在子字符串 dp[i−1] 区间之中 则 dp[i] 的左边界由 s[j] 决定即 dp[i] i − j 所以 状态转移方程 为 d p [ i ] { d p [ i − 1 ] 1 , i 0 d p [ i − 1 ] 1 , d p [ i − 1 ] i − j i − j , d p [ i − 1 ] ≥ i − j dp[i]\begin{cases}dp[i-1]1,i0\\dp[i-1]1,dp[i-1]i-j\\i-j,dp[i-1]\geq i-j\end{cases} dp[i]⎩ ⎨ ⎧​dp[i−1]1dp[i−1]1i−j​,i0,dp[i−1]i−j,dp[i−1]≥i−j​ 观察发现 dp[i] 只与 dp[i - 1] 有关所以只需定义一个变量 curLen 记录上一个长度。 使用哈希表统计 遍历字符串 s 时使用哈希表记为 preIndexs 统计 各字符最后一次出现的索引位置 。遍历到 s[i] 时可通过访问哈希表 preIndexs[s[i]] 获取最近上一个的相同字符的索引 pre 。 代码(C、Java) C class Solution { public:int lengthOfLongestSubstring(string s) {int curLen 0;int maxLen 0;mapchar, int preIndexs;for(int i 0; i s.size(); i){int pre preIndexs.find(s[i]) preIndexs.end() ? -1 : preIndexs[s[i]]; // 获取当前字符的索引curLen curLen i - pre ? curLen 1 : i - pre; // dp[i - 1] - dp[i]maxLen max(maxLen, curLen);preIndexs[s[i]] i;}return maxLen;} };Java class Solution {public int lengthOfLongestSubstring(String s) {int curLen 0;int maxLen 0;MapCharacter, Integer preIndexs new HashMap();for(int i 0; i s.length(); i){int pre preIndexs.getOrDefault(s.charAt(i), -1); // 获取当前字符的索引curLen curLen i - pre ? curLen 1 : i - pre; // dp[i - 1] - dp[i]maxLen Math.max(maxLen, curLen);preIndexs.put(s.charAt(i), i);}return maxLen;} }运行结果 复杂度分析 时间复杂度 O ( n ) O(n) O(n)其中 n 为字符串 s 的长度。空间复杂度 O ( 1 ) O(1) O(1)字符的 ASCII 码范围为 0 ~ 127 哈希表 preIndexs 最多使用 O ( 128 ) O ( 1 ) O(128)O(1) O(128)O(1) 大小的额外空间。 题目来源力扣。 放弃一件事很容易每天能坚持一件事一定很酷一起每日一题吧 关注我LeetCode主页 / CSDN—力扣专栏每日更新 注 如有不足欢迎指正
http://www.w-s-a.com/news/451758/

相关文章:

  • 网站建设代理商电话网站规划和建设方案
  • 双桥区网站制作seo 首页
  • 电子商务网站建设前期准备wordpress域名指向二级目录
  • 汕头建站网站模板淮北做网站电话
  • 手机做logo用什么网站服务器安全防护
  • 课程分销的网站怎么做北京企业网站建设方案
  • 吴兴区建设局网站湖北企业网站建设
  • 网页与网站的区别是什么2023年8月份新冠
  • 唐山网站建设外包公司安卓手机怎么搭建网页
  • 国内做网站最大的公司计量检测网站平台建设方案
  • 重庆沛宣网站建设网页制作初学者
  • php网站漂浮广告代码网络营销跟网站推广有啥区别
  • wordpress调用图片优化型网站建设的基本要求
  • 郑州模板网站建设策划公司做网站怎么赚钱滑县电
  • 东昌府聊城网站优化秦皇岛市妇幼保健院
  • 做网站能赚钱吗网页升级访问通知天天更新
  • 做网站使用什么软件的免费招聘网
  • 宁波网站建设公司推荐哪家淄博网站制作公司服务
  • 做网站网页挣钱不免费主题wordpress
  • 如何提高你的网站的粘性手机网站整站模板下载
  • 学校网站建设制度网站相关推荐怎么做
  • 昌图网站wordpress 视频外链
  • 企业网站要怎么建设重庆住房城乡建设部网站
  • html5网站特点seo教程培训班
  • 深圳网站建设哪个最好网站 多语
  • 互联网工具型网站创意网络广告
  • 影视公司网站建设网页界面设计分辨率是多少dpi
  • 免费的做微博的网站模板wordpress 页面 首页
  • 摄影图片网站网站辅导运营与托管公司
  • 做课件的网站长春免费建站模板