HD+的stock其实还不错# PDA - 掌中宝
C*U
1 楼
用了DP 但是过不了judge large
应该哪里再改进改进啊?
谢谢大牛指教
int numDistinct(string S, string T) {
unordered_map > indexMap;
vector indices;
vector tempResult, result;
result.push_back(-1);
for(int i = 0; i < T.size(); i++) {
if(indexMap.find(T[i]) == indexMap.end()) {
indexMap[T[i]] = indices;
}
}
for(int i = 0; i < S.size(); i++) {
if(indexMap.find(S[i]) != indexMap.end()) {
indexMap[S[i]].push_back(i);
}
}
int tempLast;
for(int i = 0; i < T.size(); i++) {
for(int j = 0; j < result.size(); j++) {
tempLast = result[j];
for(int k = 0; k < indexMap[T[i]].size(); k++) {
int tempNew = indexMap[T[i]][k];
if(tempLast < tempNew) {
tempResult.push_back(tempNew);
}
}
}
result = tempResult;
tempResult.clear();
}
return result.size();
}
};
应该哪里再改进改进啊?
谢谢大牛指教
int numDistinct(string S, string T) {
unordered_map
vector
vector
result.push_back(-1);
for(int i = 0; i < T.size(); i++) {
if(indexMap.find(T[i]) == indexMap.end()) {
indexMap[T[i]] = indices;
}
}
for(int i = 0; i < S.size(); i++) {
if(indexMap.find(S[i]) != indexMap.end()) {
indexMap[S[i]].push_back(i);
}
}
int tempLast;
for(int i = 0; i < T.size(); i++) {
for(int j = 0; j < result.size(); j++) {
tempLast = result[j];
for(int k = 0; k < indexMap[T[i]].size(); k++) {
int tempNew = indexMap[T[i]][k];
if(tempLast < tempNew) {
tempResult.push_back(tempNew);
}
}
}
result = tempResult;
tempResult.clear();
}
return result.size();
}
};