2 github 34366006 github_34366006 于 2016.03.21 01:18 提问

Leetcode第三题,本地运行72ms,为何提交后TLE?

题目链接:https://leetcode.com/problems/longest-substring-without-repeating-characters/
使用了HashSet,会不会是因为Mono的HashSet实现比微软的性能差很多?本地跑相同测试用例只用了72ms,提交后还是TLE
代码如下:

        public int LengthOfLongestSubstring(string s)
        {
            if (s.Length <= 1)
            {
                return s.Length;
            }
            int length = 0;
            for (int i = 0; i < s.Length; i++)
            {
                HashSet<char> set = new HashSet<char>();
                for (int j = 0; i + j < s.Length; j++)
                {
                    int offset = 0;
                    if ((offset = Add(set, s[i + j])) != -1)
                    {
                        length = length > j ? length : j;
                        i += offset;
                        break;
                    }
                }
            }
            return length;
        }

        public int Add(HashSet<char> set, char ch)
        {
            if (!set.Add(ch))
            {
                for (int i = 0; i < set.Count; i++)
                {
                    if (set.ElementAt(i) == ch)
                    {
                        return i + 1;
                    }
                }
            }
            return -1;
        }

1个回答

devmiao
devmiao   Ds   Rxr 2016.03.21 04:27
github_34366006
github_34366006 多谢分享,不过我更想知道为什么同样的代码和测试用例时间差会达到十几倍的差距,打算装个虚拟机试试
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!