网站内容设计是什么/广告接单平台app
题目地址:
https://www.lintcode.com/problem/longest-word/description
给定一个字符串数组,返回其所有长度最长的字符串。
思路是用一个列表维护已经发现的所有长度最长的字符串,当遇到新的字符串比列表中字符串还要长的时候,就将列表清空后把新的字符串加进去;如果新的字符串和列表中已有的字符串一样长,说明这个字符串也是已经发现的最长的字符串之一,将其加入列表;否则如果新的字符串长度不及列表中的字符串,直接跳过。代码如下:
import java.util.ArrayList;
import java.util.List;public class Solution {/** @param dictionary: an array of strings* @return: an arraylist of strings*/public List<String> longestWords(String[] dictionary) {// write your code hereList<String> res = new ArrayList<>();for (String s : dictionary) {if (res.isEmpty()) {res.add(s);} else if (s.length() > res.get(0).length()) {res.clear();res.add(s);} else if (s.length() == res.get(0).length()) {res.add(s);}}return res;}
}
时间复杂度O(n)O(n)O(n),空间O(1)O(1)O(1)(不包括返回的结果)。