找到字串的最長無重複字元子串

2021-10-24 12:46:01 字數 978 閱讀 3227

找到字串的最長無重複字元子串

給定乙個陣列arr,返回arr的最長無的重複子串的長度(無重複指的是所有字母都不相同)。

輸入描述:

輸入包含兩行,第一行包含乙個整數n(1

≤n≤1

05

)n(1 \leq n \leq 10^5)

n(1≤n≤

105)

,代表陣列arr的長度,第二行包含n個整數,代表陣列arr

(1≤a

rr[i

]≤10

6)

arr(1 \leq arr[i] \leq 10^6)

arr(1≤

arr[

i]≤1

06)。

輸出描述:

輸出乙個整數,代表arr的最長無重複字元的長度。

示例1輸入

4

2 3 4 5

輸出
4
例項2

輸入

5

2 2 3 4 3

輸出
3
題解:

貪心。使用乙個雜湊表記錄每個元素最近出現的位置,假設當前遍歷到 i 位置,pre 表示必須以 arr[i-1] 結尾情況下,最長無重複子串開始位置的前一位置。若 pre**:

#include

using

namespace std;

const

int n =

1000010

;int n;

int a[n]

;int

main

(void

)else pre = a[val]

; a[val]

= i +1;

}return0*

printf

("%d\n"

, ret)

;}

找到字串的最長無重複字元子串

題目 給定乙個字串str,返回str中最長無重複字元子串的長度。舉例 str abcd 返回4。str aabcb 返回3。基本思路 如果str的長度為n,字元的編碼範圍為m,本題可以做到時間複雜度為o n 空間複雜度o m 具體方法如下 在遍歷str之前,先申請幾個變數。雜湊表map,key表示某...

找到字串的最長無重複字元子串

給定乙個字串s,返回s的最長無重複字元子串的長度。例如 記錄每個字元前一次出現的位置positios,及到當前字元滿足不重複子串的前乙個位置prev,遍歷字串過程,遍歷到位置i,字元為c,positions c 為前乙個c出現的位置記為prev c,用prev c跟prev比較,如果大於prev,則...

字串問題 找到字串的最長無重複字元子串

題目 給定乙個字串str,返回str中最長無重複字元子串的長度。舉例 str abcd 返回4。str aabcb 返回3。基本思路 如果str的長度為n,字元的編碼範圍為m,本題可以做到時間複雜度為o n 空間複雜度o m 具體方法如下 在遍歷str之前,先申請幾個變數。雜湊表map,key表示某...