博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode题:Longest Substring Without Repeating Characters
阅读量:6510 次
发布时间:2019-06-24

本文共 1560 字,大约阅读时间需要 5 分钟。

Given a string, find the length of the longest substring without repeating characters.

Examples:

Given "abcabcbb", the answer is "abc", which the length is 3.

Given "bbbbb", the answer is "b", with the length of 1.

Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

自己写的时候进行了两次遍历,结果提交时Time Exceed了。。。。 上网查了下别人的思路,用快慢指针,代码如下:

public int lengthOfLongestSubstring(String s) {       int i = 0, j = 0;       int max = 0;       Set
longest = new LinkedHashSet<>(); while (j < s.length()){ if(!longest.contains(s.charAt(j))){ longest.add(s.charAt(j++)); max = Math.max(longest.size(),max); }else { longest.remove(s.charAt(i++)); } } return max; }复制代码

结果提交后比最搞笑的算法时间上慢了一倍。。。我是67ms,最快36ms。。。 最快的算法如下:

public class Solution {   public int lengthOfLongestSubstring(String s) {       if (s.length() == 0) {           return 0;       }       int maxLen = 0;       int len = 1;       int checkIndex = 0;       char[] chars = s.toCharArray();       for (int i = 1; i < chars.length; i++) {           len++;           for (int j = checkIndex; j < i; j++) {               if (chars[i] == chars[j]) {                   if (maxLen < len - 1) {                       maxLen = len - 1;                   }                   checkIndex = j + 1;                   len = i - j;                   break;               }           }       }       return Math.max(maxLen, len);   }}复制代码

转载地址:http://bebfo.baihongyu.com/

你可能感兴趣的文章
关于 HandlerMethodArgumentResolver 类 以及 WebArgumentResolver 类 自定义解析参数
查看>>
30个php操作redis常用方法代码例子
查看>>
设计模式:对问题行之有效的解决方式。其实它是一种思想。
查看>>
java异常—检查异常(checked exception)和未检查异常(unchecked exception)
查看>>
CodeForces 614B Gena's Code
查看>>
起床继续编程
查看>>
Thrift版本管理
查看>>
数据库备份那点事儿
查看>>
P2264 情书
查看>>
在C#代码中应用Log4Net(三)Log4Net中配置文件的解释
查看>>
雷林鹏分享:PHP 5 echo 和 print 语句
查看>>
各主流浏览器的区别
查看>>
Zigbee
查看>>
Android中Activity和Fragment与Fragment和Fragment之前互相传值方法
查看>>
阿里云搭建hadoop集群服务器,内网、外网访问问题(详解。。。)
查看>>
标记,上传并下载自己创建的镜像 image
查看>>
Struts2日期类型转换
查看>>
@synthesize和@dynamic分别有什么作用?
查看>>
ANDROID: NDK编程入门笔记
查看>>
Shell命令 中|| &&使用
查看>>