BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #49791同步于 2016/4/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

leetcode报时间超时了,我用的java

nijian81
2016/4/28镜像同步28 回复
它的限制时间是多少呢?3秒?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
chenxiansf机器人#1 · 2016/4/28
其实不用管限时多少,超时一般都是算法有问题或者循环什么的没出去吧
nijian81机器人#2 · 2016/4/28
【 在 chenxiansf 的大作中提到: 】 : 其实不用管限时多少,超时一般都是算法有问题或者循环什么的没出去吧 出去了的,只是我的算法时间复杂度是o(n^2),它就不让我通过
chenxiansf机器人#3 · 2016/4/28
上代码。。。 easy的话我能帮你看看。。。 【 在 nijian81 的大作中提到: 】 : 出去了的,只是我的算法时间复杂度是o(n^2),它就不让我通过
nijian81机器人#4 · 2016/4/28
【 在 chenxiansf 的大作中提到: 】 : 上代码。。。 : easy的话我能帮你看看。。。 public class Solution2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new Solution2() .lengthOfLongestSubstring("abcd"); } public int lengthOfLongestSubstring(String s) { String temp = s; int maxLength = 0; StringBuffer sb = new StringBuffer(); String result = ""; int begin = 0; boolean flag = false; for (int i = 0; i < temp.length(); i++) { if (!flag) { begin = i; flag = true; } if (sb.length() == 0) { sb.append(temp.charAt(i)); if (temp.length() == 1) { return 1; } continue; } for (int j = 0; j < sb.length(); j++) { if (temp.charAt(i) == sb.charAt(j)) { i = begin + 1; if (i == temp.length()) i--; flag = false; if (maxLength < sb.length()) { maxLength = sb.length(); result = sb.toString(); sb = new StringBuffer(); break; } sb = new StringBuffer(); } } sb.append(temp.charAt(i)); if (maxLength < sb.length()) { maxLength = sb.length(); result = sb.toString(); } } System.out.println(maxLength); return maxLength; } }
nijian81机器人#5 · 2016/4/28
【 在 nijian81 的大作中提到: 】 : public class Solution2 { : /** : * @param args : ................... 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. Subscribe to see which companies asked this question
nijian81机器人#6 · 2016/4/28
【 在 chenxiansf 的大作中提到: 】 : 上代码。。。 : easy的话我能帮你看看。。。 这个是题,后来我看答案的方法了感觉我想不到
chenxiansf机器人#7 · 2016/4/28
medium啊,我要考虑考虑。。。 【 在 nijian81 (尼见) 的大作中提到: 】 : 这个是题,后来我看答案的方法了感觉我想不到
FromSixToTen机器人#8 · 2016/4/28
public class SubString { public static void main(String[] args){ String test="bbbbbbb"; int len=SubString.lengthOfLongestSubstring(test); System.out.println("the length of "+test+"'s longestSubstring is "+Integer.toString(len)); } static public int lengthOfLongestSubstring(String s){ int ret=0,tmp=0; int[] hashTbl=new int[1024*6]; Arrays.fill(hashTbl, 0); int len=s.length(); for(int i=0;i<len;i++) { char c=s.charAt(i); if(hashTbl[(int)c]==1) { Arrays.fill(hashTbl, 0); hashTbl[(int)c]=1; if(ret<tmp) ret=tmp; tmp=1; } else { hashTbl[(int)c]=1; tmp++; } if(len-i<ret) break; } return ret; } } 这个时间复杂度怎么样。算法这种东西,要不浪费时间,要不浪费空间。@zc199102
chenxiansf机器人#9 · 2016/4/28
我觉得可以考虑这么几点: 已有的子串hash一下,这样判断新字符是否在已有子串中出现就很快 字符出现重复后可以向右滑动到重复字符后重新开始,这样滑动的远,遍历的快 还有准备说什么来着忘记了 没怎么做过medium,说错了不要打我 【 在 nijian81 的大作中提到: 】 : public class Solution2 { : /** : * @param args : ...................