簡單利用PoolingHttpClientConnectionManager來優化HttpClient方法,避免httpclient導致的排隊堆積
阿新 • • 發佈:2020-12-21
技術標籤:Leecode
1081. 不同字元的最小子序列
返回 s 字典序最小的子序列,該子序列包含 s 的所有不同字元,且只包含一次。
思路
- 首先就想到了單調棧,維護一個單點遞增棧,可以得到字典序最小的子序列。
- 但是單調棧沒有考慮題目的條件,需要包含所有不同字元並且只能出現一次,因此需要一個記錄當前棧出現字元的陣列,以及一個計算字元總數的陣列,如果需要刪除的字元在後面不出現了,就不能刪除了。
程式碼
class Solution {
public:
string smallestSubsequence(string s) {
vector<int> count (26, 0), vis(26, 0);
for(const char& c : s) {
++count[c - 'a'];
}
string ans = "";
for(const char& c : s) {
if(!vis[c - 'a']) {
while(!ans.empty() && ans.back() > c) {
if(count[ans. back() - 'a'] > 0) {
vis[ans.back() - 'a'] = 0;
ans.pop_back();
}
else {
break;
}
}
ans.push_back(c);
vis[c - 'a'] = 1;
}
--count[c - 'a'];
}
return ans;
}
};