1. 程式人生 > >leetcode 3 無重複字元的最長子串

leetcode 3 無重複字元的最長子串

題目略。當時並不會做,思路大致就是和官方解答中的方法一類似,時間複雜度n3。

查看了方法三之後,豁然開朗,這裡簡單介紹一下思路。

核心思想大概是這樣的:設開始計算無重複字串的起點字元為位置i,設當前所讀的字元為位置j;若從位置i至位置j的字串中,存在有與位置j的字元相同的字元,位置設為位置k,則將j-i作為max值,並將位置i更新至位置k+1。之後繼續從位置j開始讀取字元。重複該過程。max即為最長無重複字串的長度。

在該過程中,直接排除了包含兩個或多個相同字元的字串,所以速度會大大提升。當然和hashmap也有很大的關係。