遞迴策略+記憶陣列
int result;
int arr[
100]
;//記憶陣列,前面計算過的直接在這裡查就行了,不用在遞迴裡重複操作了,時間複雜度o(n^2)
int memo[
100]
;//返回以arr[n]結尾的最長子字串長度
intf
(int n)}}
memo[n]
=result;
return result;
}int
main()
int maxlength=0;
for(
int j=
0;j) cout
}
時間複雜度更小的一種方法:o(n)
int arr[
100]
;//result[i]記錄最長子字串長度為i的最小字元
int result[
100]
;int length;
voidf(
int n)
else
} cout<}int
main()
f(n)
;return0;
}
演算法 遞增子串行最大長度
給定乙個整數陣列nums,找到其中最長嚴格遞增子串行的長度,以下為示例,leetcode 鏈結 輸入 nums 10 9,2 5,3 7,101,18 輸出 4 解釋 最長遞增子串行是 2,3,7,101 因此長度為 4子串行是由陣列派生而來的序列,刪除 或不刪除 陣列中的元素而不改變其餘元素的順序...
字串最大長度
已知乙個字串陣列words,要求尋找其中兩個沒有重複字元的字串,使得這兩個字串的長度乘積最大,輸出這個最大的乘積。如 words abcd wxyh defgh 其中不包含重複字元的兩個字串是 abcd 和 wxyh 則輸出16 words a aa aaa aaaa 找不到滿足要求的兩個字串,則輸...
最長遞增子串
第一類 只需要求長度最長的遞增子串 方法1 時間複雜度 o n 2 include include define maxn 1000 5 using namespace std inta maxn b maxn a i 表示輸入的陣列,b i 表示到字元 i的最長遞增子串 intmain for i...