找到字串的最長無重複字元子串
給定乙個陣列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表示某...