数字在数组中出现的次数

原创 2013年12月03日 19:22:55
public class SameSore {

    /**
     * 统计同成绩的人数: 可以统计数组中的各个数出现的次数
     */
    public static void main(String[] args) {
        int arr[] = { 65, 70, 80, 50, 70, 80 };
        Arrays.sort(arr); // 升序排列
        int len = arr.length - 1;
        System.out.println("请输入前多少名?");
        Scanner input=new Scanner(System.in);
        int num=input.nextInt();
        
        int count[] = new int[num+1];  //由于第1个不取,所以长度比实际的加1 ,存储第多少名的   数据 
        int score[]=new int[len+1];   //成绩 
        //第几名 多少个同学
        
        for (int k = 1; k <= count.length-1; k++) {
            int hasCount=0;
            for(int j=1;j<=k;j++){
                hasCount+=count[j];   //已经统计的个数
            }
            for (int i = len - hasCount; i >= 0; i--) { //统计第几名重复了几个
                if (arr[i] == arr[len - hasCount]) {
                    score[k]=arr[len - hasCount];  //第几名的分数
                    count[k]++;  //第几名的个数
                }
            }
        }
        
        // 结果:
            for (int i = 1; i <count.length; i++) {
                    try{
                    System.out.println("第" + i + "名,成绩为"+score[i]+":" + count[i]);
                    }catch(ArrayIndexOutOfBoundsException e){
                        System.out.println("第"+i+"名超出范围哦!");
                    }
            }       
    }
}

相关文章推荐

数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次, 超过数组长度的一半,因此输出2。如...

数字在排序数组中出现的次数 java

题目描述 统计一个数字在排序数组中出现的次数。 解题思路 数组是排序的,所以重复出现的数字是相邻排列的。 用二分查找算法,找到第一次出现的位置,和 最后一次出现的位置。 判断第一次出现的位置...

《剑指offer》——数字在排序数组中出现的次数

由排序数组可以想到使用二分查找法先查找到一个待查的数字,然后再确定该数字第一次出现的位置和最后一次出现的位置,相减即可得到该数字在排序数组中出现的次数。该方法的时间复杂度为o(logn)。 /*...

剑指Offer--029-数组中出现次数超过一半的数字

链接 牛客OJ:数组中出现次数超过一半的数字 九度OJ:http://ac.jobdu.com/problem.php?pid=1370 GitHub代码: 029-数组中出现...
  • gatieme
  • gatieme
  • 2016年04月26日 16:09
  • 2052

面试题:数组中出现次数超过一半的数字

题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。...
  • zjwcdd
  • zjwcdd
  • 2016年11月18日 13:54
  • 608

找数组中出现次数超过一半的数字

找数组中出现次数超过一半的数字 数组中有一个数字出现次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。 由于数字2在数组中出现了5次...

程序员面试题精选100题(47)-数组中出现次数超过一半的数字

程序员面试题精选100题(47)-数组中出现次数超过一半的数字 题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。 分析:这是一道广为流传的面试题,包括百度、微软和G...

剑指offer-面试题38-数字在排序数组中出现的次数

package case38_NumbersOfK; /** * 题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次...

面试题29数组中出现次数超过一半的数字

题目描述:   数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。   例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,...

面试题38 数字在排序数组找那个出现的次数

例如输入数组{1,2,3,3,3,3,4,5,6}中查找3出现的次数。 最为简单的方法就是从头遍历这个数组,统计3出现的次数,可是这样没有利用这是一个排序了的数组这个条件,时间复杂度O(n)。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数字在数组中出现的次数
举报原因:
原因补充:

(最多只允许输入30个字)