Redian新闻
>
townhouse 朝哪个方向比较好?
avatar
townhouse 朝哪个方向比较好?# Living
c*u
1
https://leetcode.com/problems/substring-with-concatenation-of-all-words/
这道题我是用的brute force,所以有时候超时。请问有更好的算法吗?
我的code有几次通过了,耗时200ms,我看最终结果里有很多几十毫秒的。请问那是怎
样的算法呢?
public class Solution {
public List findSubstring(String s, String[] words) {
ArrayList result = new ArrayList();
HashMap wordMap = new HashMap();
HashMap wordCover = new HashMap();
int wordsLen = words.length;
int singleLen = words[0].length();
boolean found;
for(int i=0; iif(!wordMap.containsKey(words[i])) {
wordMap.put(words[i], 1);
} else {
wordMap.put(words[i], wordMap.get(words[i]) + 1);
}
}
for(int i=0; i<=s.length() - wordsLen * singleLen; i++) {
found = true;
wordCover.clear();
for(int j=0; jString single = s.substring(i+j*singleLen, i+(j+1)*singleLen
);
if(!wordMap.containsKey(single)) {
found = false;
break;
}
if(!wordCover.containsKey(single)) {
wordCover.put(single, 1);
} else {
wordCover.put(single, wordCover.get(single) + 1);
}
if(wordCover.get(single) > wordMap.get(single)) {
found = false;
break;
}
}
if(found) {
result.add(i);
}
}
return result;
}
}
avatar
V*P
2
avatar
m*t
3
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。