Leetcode 03 無重複字元的最長子串

2021-09-29 03:02:36 字數 672 閱讀 2593

中等題

給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。

自己在那兒想了半天,定義了left和right兩個指標,每次右邊界右移得到新的字元,檢查前面有沒有重複的,如果有就直接將左邊界移至重複字元後面乙個,因為每一步都確保了前面的字串沒有重複字元,因此只要考慮新加入的即可,邏輯上應該沒啥問題,就是對我而言有點費腦子...

class solution 

return max;

}};

執行用時 :12 ms, 在所有 cpp 提交中擊敗了86.45%的使用者

記憶體消耗 :9.2 mb, 在所有 cpp 提交中擊敗了87.64%的使用者

class solution 

hash[s[i]]=i;

max = (i - left + 1) > max ? (i - left + 1) : max;

} return max;

}};

執行用時 :36 ms, 在所有 cpp 提交中擊敗了41.65%的使用者

記憶體消耗 :13.2 mb, 在所有 cpp 提交中擊敗了76.15%的使用者

這個是比較常用的用雜湊表來對搜尋進行優化,可能因為使用unordered_map本身會有一定開銷,整體執行速度變慢了。

LeetCode 03 無重複字元的最長字串

從頭開始遍歷每乙個字元放入到hashmap中,然後依次掃瞄後續每乙個字元繼續放入到hashmap中,直到某一字元已經存在為止。得到以該字元開頭對應的最大無重複字串。迴圈得到無重複字元的最長字串 當然我肯定不會就此滿足,於是我在乙個精選中看到了四個字滑動視窗不錯,我的思想就是這個,但是 實現上稍微有點...

Leetcode 03 無重複字元的最長子串

lf rt 確定子串範圍,mm記錄曾經遇到過的最長子串針對每乙個新的字元,從右向左找是否有重複,重複則重新劃定範圍,捨棄先遇到的字元。s lf s rt s i 構成這個最長子串,因此每次從rt開始一直遍歷到lf。五月打卡之新增 滑動視窗 while rt有移動空間 記錄此時的子串。rt 記得刪去不...

Leetcode題庫03 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 解釋...