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

实用指南:LeetCode:无重复字符的最长子串

实用指南:LeetCode:无重复字符的最长子串

目录

解题过程:

描述:

分析条件:

正确解题思路:

通过这道题可以学到什么:


解题过程:

描述:

3. 无重复字符的最长子串

提示

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串的长度。

示例 1:

"abc"

示例 2:

"b"

示例 3:

"wke"

提示:

  • 0 <= s.length <= 5 * 104
  • s 由英文字母、数字、符号和空格组成

分析条件:

1.我们只需要最长数组的长度即可,因此我们实际上是要把可能得情况全部求出来并取其中的最大值,因此滑动数组是最优解

2.什么事滑动数组呢,尾指针遍历数组,头指针动态变化(根据是否有重复元素)

3.那么头指针如何动态变化呢,我们可以用一个HashMap集合记录每个元素上一次出现的位置,我们遇到重复元素,让头指针指向该重复元素在Map中记录的索引的下一个位置

正确解题思路:

class Solution {
public int lengthOfLongestSubstring(String s) {
//定义一个变量记录结果
int ans = 0;
int len = s.length();
//定义一个哈希数组记录当前字符索引
Map map = new HashMap<>();
for(int start = 0,end = 0; end < len;end++){
if(map.containsKey(s.charAt(end))){
//防止start回退
start = Math.max(start,map.get(s.charAt(end)) + 1);
}
//把当前元素的索引存入map集合
map.put(s.charAt(end),end);
ans = Math.max(ans,end - start + 1);
}
return ans;
}
}

通过这道题可以学到什么:

要注意取start和重复元素索引位置下一位中的最大值,防止start头指针回退

http://www.sczhlp.com/news/18243/

相关文章:

  • 沈阳网站建设思路中国网站建设公司前十名
  • 网站开发有哪些架构网络营销策划方案ppt模板
  • 一个服务器做两个网站吗网站快速收录软件
  • 建设一个网站要多久社群营销活动策划方案
  • 做网站建设销售工资合肥网站seo推广
  • 内蒙古有做购物网站的吗山西网络推广
  • wordpress成功的网站线下推广方法有哪些
  • 陆丰网页设计广东seo价格是多少钱
  • 绍兴做网站的公司百度下载并安装到桌面
  • 做挂的网站搜外网
  • 网站规划 时间电商的推广方式有哪些
  • cmd窗口设置不自动关闭
  • 深圳期货配资网站开发网络市场调研的方法
  • 展示型手机网站模板下载专业培训机构
  • 如何做ps4游戏视频网站广东seo点击排名软件哪里好
  • wordpress编辑器上传图片宁波专业seo服务
  • 兰州网站制作公司100深圳网站营销seo电话
  • 企业解决方案搞笑aso应用商店优化原因
  • 伊犁网站建设评价推广的几种方式
  • 数据降维与特征提取:核心方法与实践指南
  • yarn记录
  • 一文带您了解 Meta Agent(数据智能体)中的知识库
  • 微网站建设网络营销的特点有几个
  • 黄岛开发区做网站的公司西安关键词排名提升
  • 深圳网站建设公司好优化seo厂家
  • 政府网站网站安全建设目标网站怎样关键词排名优化
  • Java中的分布式缓存与Memcached集成实战
  • 阜阳网站设计长沙百度首页优化排名
  • 营销企业网站制作百度百家号怎么赚钱
  • 深圳网站设计兴田德润放心保定seo网络推广