給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 1:
輸入: 「abcabcbb」
輸出: 3
解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。
示例 2:
輸入: 「bbbbb」
輸出: 1
解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。
示例 3:
輸入: 「pwwkew」
輸出: 3
解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。
請注意,你的答案必須是 子串 的長度,「pwke」 是乙個子串行,不是子串。
無重複字元的最長子串
因為有了前兩道題的啟發,所以這次我也想到用雙指標的方法來解題,可是前兩次做題我就不是很清楚雙指標的用法。所以就去b站搜了一下雙指標的講解,有一位黑人大牛的講解十分清晰有趣。回歸本題,我們可以設定乙個左指標乙個右指標,要找最長子串說明右指標要不斷地往右移,可以讓左指標固定不動,右指標往右移,直到找到乙個重複字元,左指標就遷移到當前右指標的位置,再比較之前的最大值和重複字元後的最大值。
class
solution
max = math.
max(max, r-l +1)
; m.
put(s.
charat
(r), r +1)
;}return max;
}}
每日一題 leetcode3無重複字元的最長子串
題目描述 給定乙個字串 s 請你找出其中不含有重複字元的最長子串的長度。示例 輸入 s abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。題目分析 要求從字串中找到最長的不含重複字元的子串,那麼就存在乙個區間 start,end 在這個區間內,每個字元不重複且長...
每日一題 LeetCode
在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...
leetcode每日一題 435 無重疊區間
題目 給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。思路 貪心演算法 將所有區間按右端點進行排序,並將第乙個區間作為符合條件的初始區間,並記其右端點為right,則按序查詢首個...