码迷,mamicode.com
首页 > 其他好文 > 详细

课堂练习&课下作业

时间:2016-05-20 09:52:52      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

设计思路:

将数组排序,最中间的那个数就是您要找的数。如果出现最多的那个数是最小的,那么1至(n+1)/2都是那个数。如果出现最多的那个数是最大的,那么(n-1)/2至n都是那个数。如果不是最小也不是最大中间的数也肯定是出现最多的那个。

源代码:

import java.util.Arrays;

public class Water {
    public static void main(String arg[])
    {
        int array[] = {3,1,3,1,5,6,3,3,3,3};
        
        Arrays.sort(array);
        
        int n = (array.length + 1) / 2;
        
        System.out.println("数组中超过一半的数是:"+array[n]);
    }
}

结果截图:

技术分享

个人总结:

我能想到的也就三个方法了。一个是上面这个排序的,一个是两数比较,不同就消去两个,相同就进行下一项比较,还有一个就是最蠢的记录每个数出现的次数。然而我感觉不管用什么方法,都需要遍历一次数组,并没有哪种方法更快更简单,所以就选择了排序的方法做了。

课堂练习&课下作业

标签:

原文地址:http://www.cnblogs.com/wxyxxx/p/5511008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!