Problem3:lengthOfLongestSubstring
来源:互联网 发布:linux还原备份命令 编辑:程序博客网 时间:2024/06/13 17:31
这道题通过看别人的,看到了很多不一样的实现方法,现在把它都记录下来,有更好的方法的欢迎初学者一起探讨交流哦~~~~
package pratice.leetcode;import java.util.*;public class problem3 {//Time complexity : O(n^3).//public static boolean allUnique(String s,int start,int end){//Set<Character> set=new HashSet<>();//for(int i=start;i<end;i++){//char c=s.charAt(i);//if(set.contains(c))//return false;//set.add(c);//}//return true;//}//public static int lengthOfLongestSubstring(String s) {//int ans=0;//for(int i=0;i<s.length();i++){//for(int j=i+1;j<=s.length();j++){//if(allUnique(s,i,j)) //ans=Math.max(ans, j-i);//}//}//return ans;//}//Map实现,Map中不允许key值重复public static int lengthOfLongestSubstring(String s) {int ans=0;if(s.length()==0)return ans;Map<Character,Integer> map=new HashMap<>();for(int i=0,j=0;j<s.length();j++){if(map.containsKey(s.charAt(j))){i=Math.max(map.get(s.charAt(j)), i);}ans=Math.max(ans, j-i+1);map.put(s.charAt(j), j+1);}return ans;}//Sliding Window//public static int lengthOfLongestSubstring(String s) {// int n = s.length();// Set<Character> set = new HashSet<>();// int ans = 0, i = 0, j = 0;// while (i < n && j < n) {// // try to extend the range [i, j]// if (!set.contains(s.charAt(j))){// set.add(s.charAt(j++));// ans = Math.max(ans, j - i);// }// else {// set.remove(s.charAt(i++));// }// }// return ans;// } //当输入是pwwkew时错误,最初的实现,有问题的!!!//public static int lengthOfLongestSubstring(String s) {// Map<Character,Integer> map=new HashMap<>();// int flag=0;// for(int i=0;i<s.length();i++){// char c=s.charAt(i);// if(!map.containsKey(c)){// map.put(c, flag++);// }// }// return flag;//} public static void main(String[] args){String s="aussuaab";System.out.println(lengthOfLongestSubstring(s));}}
阅读全文
1 0
- Problem3:lengthOfLongestSubstring
- lengthOfLongestSubstring
- Problem3
- Problem3
- leetcode lengthOfLongestSubstring
- LeetCode3.lengthOfLongestSubstring
- 3.lengthOfLongestSubstring
- snort problem3
- Problem3-1001
- Problem3-1002
- Problem3-1006
- Problem3-1004
- Problem3-1015
- Problem3-1014
- Problem3-1024
- Problem3-1005
- Problem3-1003
- Problem3-1017
- 微信小程序通知服务实现及错误47001和41028
- C++中的explicit关键字
- 欢迎使用CSDN-markdown编辑器
- Ubuntu /Spark单机环境搭建
- 检查android设备是否支持某些功能
- Problem3:lengthOfLongestSubstring
- Spring Boot教程三:log4j记录日志
- js日期类型计算
- Linux下的权限问题
- mongo-查询(5)——查询数组
- zxing的各种设置问题。(引用其他nb人经验)
- IDEA集成git的客户端
- Linux下c语言多线程编程
- lwj_C#_方法重载,递归,构造