瑞恩面试编程题:找出数组中出现次数最多且最大的那个数及出现的次数
2013-07-30 16:34
393 查看
package jp.co.sanx.pos.event; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class test { /** * @param args */ public static void main(String[] args) { int[] a = {9, 1, 6, 3, 3, 1, 2, 2,2,1, 8}; int coutMax; //key按照升序存储 Map<String,String> map =new TreeMap<String, String> (); //map的设定:key,数组中出现过得key;value,出现的次数 for (int i = 0; i < a.length;i++) { if (map.containsKey(Integer.toString(a[i]))) { continue; }else { coutMax=1; for (int j=i +1;j<a.length;j++) { if (a[j]==a[i]){ coutMax++; } } map.put(Integer.toString(a[i]), Integer.toString(coutMax)); } } //取得value最大且为最后一个的键值对 Iterator<Entry<String, String>> i = map.entrySet().iterator(); Entry<String, String> etry,etryTmp; int time = 0,timeTmp = 0; int key = 0,keyTmp; if(i.hasNext()) { etry = (Entry<String, String>) i.next(); key = Integer.parseInt((String) etry.getKey()); time = Integer.parseInt((String) etry.getValue()); } while(i.hasNext()) { etryTmp = (Entry<String, String>) i.next(); keyTmp = Integer.parseInt((String) etryTmp.getKey()); timeTmp = Integer.parseInt((String) etryTmp.getValue()); if(timeTmp >= time) { time = timeTmp; key = keyTmp; } } System.out.println( "数组中出现次数最多且最大值为:" + key + " ,出现次数:" + time); } }
面试回来后敲得代码,答题一个小时,当时没有时间实现,给面试官说明了以上思想,但是面试官说只需要对数组操作就能实现,当时尽然没有在思考一下 否决了自己的想法,但不晓得仅循环数组怎么能实现。。。
面试还是要自信些,淡定些,沉稳些。不要急啊。
相关文章推荐
- java找出一个数组中出现次数最多且最大的那个元素
- java找出一个数组中出现次数最多的那个元素(用HashSet很新颖)
- java找出一个数组中出现次数最多的那个元素
- java找出一个数组中出现次数最多的那个元素
- 找出数组中出现次数最多的那个数
- 找出数组中出现次数最多的前k个元素[leetcode题]
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】
- 小程序(九)找出数组中出现最多的数字以及它的出现次数
- J2EE面试题之 java如何找出一个int数组中出现次数最多的数字以及出现次数?
- Java-实现找出数组中一个数字出现次数最多的数字
- Majority Element 找出一个数组中出现次数最多的元素
- 编写一个程序,对用户输入的任意一组数字字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的字符,并显示其出现次数。如果有多个字符出现次数均为最大且相等,则输出最先出现的那个字符和它出现
- js方式找出数组中重复数最多的那个数,并返回该数以及重复次数
- 任意给定一整数数组,求两个元素之差的最大值和数组中出现次数最多的数
- 找出数组中出现次数最多的数字&找出数组中只出现一次的数字
- 找出数组中出现次数最多的数字
- 找出在数组中出现次数超过一半的那个数
- 找出数组中出现次数最多的数字
- 找出数组中出现次数超过数组长度一半(>=1/2 >1/3)的那个数