第一次直接暴力解决,但是耗时居然达到了250ms,就是因为每次循环我都重新构造了一个新的map,极大地增加了时间,第一次的代码如下:
第二次是看了题解后提到的滑窗法,确实提高了几个量级的速率,只用了4ms,只需要遍历一次,用的map来解决,需要注意的是当出现重复的字符后,如果i的值小于等于重复字符的位置时才更新i值,这里最初没想到导致abba样例过不了,最后的结果j-i+1就是最长距离,代码如下:
第一次直接暴力解决,但是耗时居然达到了250ms,就是因为每次循环我都重新构造了一个新的map,极大地增加了时间,第一次的代码如下:
第二次是看了题解后提到的滑窗法,确实提高了几个量级的速率,只用了4ms,只需要遍历一次,用的map来解决,需要注意的是当出现重复的字符后,如果i的值小于等于重复字符的位置时才更新i值,这里最初没想到导致abba样例过不了,最后的结果j-i+1就是最长距离,代码如下:
相关文章: