这样就OK了,你试一下
class Test
{
public static void main(String[] args)
{
int max=1;
String[] strs={"a","b","f","a","d","c","e","d","a","d"};
for(int i=0;i<strs.length-1;i++)
{
int count=1;
for(int j=i+1;j<strs.length;j++)
{
if(strs[i].equals(strs[j]))
count++;
}
if(max<count)
max=count;
}
System.out.println("重复最多次数为:"+max);
for(int i=0;i<strs.length-1;i++)
{
int count=1;
for(int j=i+1;j<strs.length;j++)
{
if(strs[i].equals(strs[j]))
count++;
}
if(count==max)
System.out.println("重复最多次("+max+")的字符串为:"+strs[i]);
}
}
}
追问有点复杂了. 我自己想了一个办法,你看行不行.我用hashmap存储这些字符串,如果发现重复就把value加1,说明这个词多出现了1次,然后添加2个标记,一个标记当前最大value,一个存储当前最大value对应的字符串. 一次遍历之后得到最大频率的字符串. 这样是不是效率些?
追答关键是怎么判断重复,并且重复了多少次,都差不多
追问因为这部分是一个大程序里面的一小部分. 所以我要求速度很快.
你的程序是不是会慢一些? 复杂度是O(N^2)吧.
我说的办法复杂度应该是O(N).
本回答被提问者采纳