java 数组 急example:maxOccurence({1,3,7,2,1,2,5,1})={1,3}maxOccurence({1,3,7,2,1,2,5,1,2,5,5})={5,3}根据这两个写出方法maxOccurence!这个题目的意思是 新建立一个大小为2的数组,例如a[2].a[0]等于出现最频繁的数,
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/02 17:43:43
![java 数组 急example:maxOccurence({1,3,7,2,1,2,5,1})={1,3}maxOccurence({1,3,7,2,1,2,5,1,2,5,5})={5,3}根据这两个写出方法maxOccurence!这个题目的意思是 新建立一个大小为2的数组,例如a[2].a[0]等于出现最频繁的数,](/uploads/image/z/13890273-33-3.jpg?t=java+%E6%95%B0%E7%BB%84+%E6%80%A5example%EF%BC%9AmaxOccurence%28%7B1%2C3%2C7%2C2%2C1%2C2%2C5%2C1%7D%29%3D%7B1%2C3%7DmaxOccurence%28%7B1%2C3%2C7%2C2%2C1%2C2%2C5%2C1%2C2%2C5%2C5%7D%29%3D%7B5%2C3%7D%E6%A0%B9%E6%8D%AE%E8%BF%99%E4%B8%A4%E4%B8%AA%E5%86%99%E5%87%BA%E6%96%B9%E6%B3%95maxOccurence%21%E8%BF%99%E4%B8%AA%E9%A2%98%E7%9B%AE%E7%9A%84%E6%84%8F%E6%80%9D%E6%98%AF+%E6%96%B0%E5%BB%BA%E7%AB%8B%E4%B8%80%E4%B8%AA%E5%A4%A7%E5%B0%8F%E4%B8%BA2%E7%9A%84%E6%95%B0%E7%BB%84%2C%E4%BE%8B%E5%A6%82a%5B2%5D.a%5B0%5D%E7%AD%89%E4%BA%8E%E5%87%BA%E7%8E%B0%E6%9C%80%E9%A2%91%E7%B9%81%E7%9A%84%E6%95%B0%2C)
java 数组 急example:maxOccurence({1,3,7,2,1,2,5,1})={1,3}maxOccurence({1,3,7,2,1,2,5,1,2,5,5})={5,3}根据这两个写出方法maxOccurence!这个题目的意思是 新建立一个大小为2的数组,例如a[2].a[0]等于出现最频繁的数,
java 数组 急
example:maxOccurence({1,3,7,2,1,2,5,1})={1,3}
maxOccurence({1,3,7,2,1,2,5,1,2,5,5})={5,3}
根据这两个写出方法maxOccurence!
这个题目的意思是 新建立一个大小为2的数组,例如a[2].
a[0]等于出现最频繁的数,并且如果两个数出现的频率一样,比较两个数的大小,大的放入a[0].a[1]等于出现最频繁数出现的次数!
java 数组 急example:maxOccurence({1,3,7,2,1,2,5,1})={1,3}maxOccurence({1,3,7,2,1,2,5,1,2,5,5})={5,3}根据这两个写出方法maxOccurence!这个题目的意思是 新建立一个大小为2的数组,例如a[2].a[0]等于出现最频繁的数,
你的要求我没有明白,如果是想取出一个数组中出现次数最多的数字,那么你给的例子的结果不正确啊.
例如:
maxOccurence({1,3,7,2,1,2,5,1,2,5,5})的返回值如果表示出现次数最多的项目,那结果应该是{1,2,5},不过我也没有根据你的例子猜测出你的函数意图.
下面是我假设你要获取一个数组中出现次数最多的项目(使用了泛型).
public Collection maxOccurence(T[] array) {
Map counts = new HashMap();
for (T item : array) {
Integer count = counts.get(item);
if (count == null) {
count = 0;
}
counts.put(item, ++count);
}
int maxOccurs = 1;
Set maxArray = new HashSet();
Set keys = counts.keySet();
for (T key : keys) {
Integer count = counts.get(key);
if (count > maxOccurs) {
maxOccurs = count;
maxArray.clear();
maxArray.add(key);
} if (count == maxOccurs) {
maxArray.add(key);
}
}
return maxOccurs == 1 ? Arrays.asList(array) : maxArray;
}
补充问题的时候,没有通知我,所以修改答案晚了,下面是按照你的要求修改后的代码.
public int[] maxOccurence(int[] array) {
Map counts = new HashMap();
for (Integer item : array) {
Integer count = counts.get(item);
if (count == null) {
count = 0;
}
counts.put(item, ++count);
}
int maxOccurs = 1;
Integer maxValue = array[0];
Set keys = counts.keySet();
for (Integer key : keys) {
Integer count = counts.get(key);
if (count >= maxOccurs) {
maxOccurs = count;
if (key > maxValue) {
maxValue = key;
}
}
}
int[] result = new int[2];
result[0] = maxValue;
result[1] = maxOccurs;
return result;
}