快速找出数组中元素数目超出一半的元素
来源:互联网 发布:java和数据挖掘 编辑:程序博客网 时间:2024/05/18 03:52
思路:在遍历数组的过程中,保存两个值,一个是数组中数字,一个是出现次数。当遍历到下一个数字时,如果这个数字跟之前保存的数字相同,则次数加1,如果不同,则次数减1。如果次数为0,则保存下一个数字并把次数设置为1,由于我们要找的数字出现的次数比其他所有数字出现的次数之和还要多,那么要找的数字肯定是最后一次把次数设为1时对应的数字。
public int MoreHalf(int[] nums) { int result = 0; int count = 1; if (nums.length == 0) return -1; result = nums[0]; for (int i = 1; i < nums.length; i++) { if (count == 0) { result = nums[i]; count = 1; continue; } if (result == nums[i]) count++; else count--; } count = 0; for (int i = 1; i < nums.length; i++) { if(result = nums[i])count++; } if(count > nums.length/2) return result ; return 0; }
阅读全文
0 0
- 快速找出数组中元素数目超出一半的元素
- 算法(二)找出数组中元素数目超出一半的元素
- 找出一个数组中出现次数超过一半的元素
- 找出数组中最多的元素,已确定最多元素个数超过总数的一半
- Java实现 找出数组中出现次数超过数组长度一半的元素
- 找出数组中出现次数超过数组长度一半的元素
- 找出数组中出现次数超过数组长度一半的元素—-腾讯
- 找出出现次数超过数组一半元素的数
- 找出数组中出现次数超过一半或者超过1/3的元素
- 快速查找list中的大多数元素(数目超过一半的元素)
- 求数组中超过一半的元素
- 数组中数字超过一半的元素
- 数组中至多有一个出现次数大于数组长度一半元素,找出这个元素
- 找出数列中个数大于总数一半的元素
- 找出数组中唯一的重复元素
- 找出数组中唯一的重复元素
- 找出数组中唯一的重复元素
- 找出数组中最小的元素
- 没想到吧?购物车3.0版本
- 909422229_利用eclipse创建第一个maven项目
- 绕任意轴旋转
- hdu 4576(概率dp)
- 架构高性能海量图片服务器的技术要素
- 快速找出数组中元素数目超出一半的元素
- 薪水查询
- 别成为"有潜力"的受害者
- Excel怎么自动生成目录点击这个目录就可进入对应的工作表格
- 关于在MySQL中查询多边形包含点情况(5.1中可用),5.6可用ST_Contains
- 蓝牙nrf51822程序的分析(一)
- linux设备驱动第一篇:设备驱动程序简介
- Ubuntu 16.04.2 LTS 安装VMware Tools解决虚拟机不全屏的问题
- position的值,relative和absolute分别相对于什么定位