问题要求:
数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
参考资料:编程之美2.3 寻找发帖水王
问题分析:
方法1 对数组排序,然后顺次查找其中最多的;
方法2 对数组排序,最中间一个肯定为要找的数字,时间复杂度O(NlogN);
方法3 每次消去数组中两个不同的数,最后剩下的肯定为要找的数字,时间复杂度O(N).
方法3代码1如下,以下是
问题要求:
数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
参考资料:编程之美2.3 寻找发帖水王
问题分析:
方法1 对数组排序,然后顺次查找其中最多的;
方法2 对数组排序,最中间一个肯定为要找的数字,时间复杂度O(NlogN);
方法3 每次消去数组中两个不同的数,最后剩下的肯定为要找的数字,时间复杂度O(N).
方法3代码1如下,以下是