标题:查找众数及中位数 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限   1.众数是指一组数据中出现次数量多的那个数,众数可以是多个   2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数   3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数            import java.util.*;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        String num = scanner.nextLine();        String[] nums =num.split("\\s+");        Map<Integer,Integer> map = new HashMap<>();        for (String nu :nums){            int nn = Integer.valueOf(nu);            if (map.containsKey(nn)){                map.put(nn,map.get(nn)+1);            }else {                map.put(nn,1);            }        }        int max = 0;        for (int mm : map.values()){            if (mm>=max){                max =mm;            }        }        List<Integer> numList =new ArrayList<>();        for (Map.Entry<Integer,Integer> entry :map.entrySet()){            if (entry.getValue()==max){                numList.add(entry.getKey());            }        }        Collections.sort(numList);        if (numList.size()%2!=0){            int result =(numList.size()+1)/2 -1;            System.out.println(numList.get(result));        }else {            System.out.println((numList.get(numList.size()/2)+numList.get(numList.size()/2-1))/2);        }    }}
点赞 1
评论 0
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务