[Leetcode]Longest Substring Without Repeating Characters java
2015-06-11 13:07
399 查看
难度不高~就是移动窗口,首先想如果没有重复的就是当前长度,如果有重复的就要是窗口右边减去窗口左边,窗口右边可以看成i一直在向前增大,左边只有尽可能左才求出来的最大,但是遇到与窗口右边重复的左边就要移动。然后不断改变统计窗口长度的变量,求最大的。
public int lengthOfLongestSubstring(String s) { int start = 0; int max = 0; for (int i = 0; i < s.length(); i++) { //i为窗口右边 start = findSame(s.charAt(i), start, i, s); //start为左边 if (max < i + 1 - start) { max = i + 1 - start; } } return max; } public int findSame(char a, int start, int end, String s) { int temp = start; for (int i = start; i <= end; i++) { if (s.charAt(i) == a && i != end) { temp = i + 1; } } return temp; }
相关文章推荐
- Spring的javaMail邮件发送(带附件)
- Struts2获取演示示例教程
- 深入理解Java:类加载机制及反射
- Ubuntu 14.04 java环境安装配置(不是openJAVA)
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- 关于JDK
- java中的递归方法
- java dom、sax解析xml
- R.java文件中的资源在Activity中得不到引用的问题
- 怎么在eclipse中导入一个maven项目
- 深入理解 Java中的 流 (Stream)
- Java构造和解析Json数据的两种方法详解一
- 不使用Cygwin,在eclipse中快速开发JNI,一键生成C头文件.h,以及一键使用NDK交叉编译
- java loop demo
- Java中的泛型方法
- 一个倒计时页面用javascrpt
- Java中使用Groovy的三种方式
- java学习之MVC模型(二)
- 关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名
- java学习笔记(八)—— extends and override