Leetcode每日一題 無重複字元的最長子串

2021-09-29 06:41:37 字數 759 閱讀 1471

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

示例 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,則按序查詢首個...