java 数组 急example:maxOccurence({1,3,7,2,1,2,5,1})={1,3}maxOcc
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/12 22:29:09
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]等于出现最频繁数出现的次数!
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]等于出现最频繁数出现的次数!
你的要求我没有明白,如果是想取出一个数组中出现次数最多的数字,那么你给的例子的结果不正确啊.
例如:
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;
}
例如:
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;
}
java二维数组int[][]a={{1,2,3,},{4,5,6},{7,8,
java传入一个数组{1,2,3},返回123,132,213,231,312,321,求指导.
3.java题:已知两个有序数组a={2,3,7,12,16,21,45,76},b={1,5,12,14,17,21,
int array[10]={1,2,3,4,5,6,7,8,9,0} ,java 里面可以这样定义数组吗?
寻求Java高手,用数组实现随机输出1,2,3,4,5,6,7,8,9,10,J,Q,K中的四个数
MATLAB的数组a=(1,2,3),数组b=(2,3),怎样令数组c=(1)?
有一奇数列1,3,5,7,9,11,13……99,要求用java程序输出并存放在数组中.
请用Java建立一个3*3的三维数组,数组值使用随机数生成,其范围是1~50,然后计算每一个行的
在matlab里面 B(2,5,:)=1:为什么它表示子数组赋值创建2*5*3 的数组,
java统计一个数组中各个元素出现的次数,如 int a[]={2,34,23,2,54,23,65,34,1,65};
定义一个整型数组,int a[]={1,2,3,4,5}求数组元素之和并输出
数组a[9]={1,2,3,4,5,6,7,8,9},输入个整数n,让数组后移n个数,但是溢出的数仍按顺序放到数组中