4.11
用一个map映射,通过长度对单词分组。
最后直接返回 length最长的就可以。
class Solution {
/**
* @param dictionary: an array of strings
* @return: an arraylist of strings
*/
ArrayList<String> longestWords(String[] dictionary) {
int count = dictionary.length;
if(count == 0){
return null;
}
HashMap<Integer,ArrayList<String>> map = new HashMap<Integer,ArrayList<String>>();
int max = 0;
for(int i = 0;i < count;i++){
int length = dictionary[i].length();
if(length >= max){
max = length;
}
if(!map.containsKey(length)){
ArrayList<String> tmp = new ArrayList<String>();
tmp.add(dictionary[i]);
map.put(length, tmp);
}
else{
map.get(length).add(dictionary[i]);
}
}
ArrayList<String> list = map.get(max);
return list;
}
};
231

被折叠的 条评论
为什么被折叠?



