得到数组中最有效的元素和下标
来源:互联网 发布:windows的快捷方式 编辑:程序博客网 时间:2024/05/21 16:57
先看代码
运行结果
Number=5
0 2 4 6
<script type="text/javascript"><!--google_ad_client = "pub-2908059660288034";/* 728x90,首页中间 创建于 08-8-14 */google_ad_slot = "5903610560";google_ad_width = 728;google_ad_height = 90;//--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- import java.util.Arrays;
- /**
- * 得到数组中最有效的元素和下标.<br>
- * 最有效的只出现频率超过长度一半的数据。
- *
- * @author 赵学庆 www.java2000.net
- */
- public class MyTest {
- public static void main(String[] args) {
- int[] values = new int[] { 5, 3, 5, -5, 5, 0, 5 };
- int maxValue = getMax(values);
- if (maxValue > Integer.MIN_VALUE) {
- System.out.println("Number=" + maxValue);
- for (int i = 0; i < values.length; i++) {
- if (values[i] == maxValue) {
- System.out.print(i + " ");
- }
- }
- } else {
- System.out.println("没有找到");
- }
- }
- public static int getMax(int[] values) {
- int[] nums = Arrays.copyOf(values, values.length);
- Arrays.sort(nums);
- int number = Integer.MIN_VALUE;
- int count = 0;
- int numbertemp = Integer.MIN_VALUE;
- int counttemp = 0;
- for (int num : nums) {
- if (num == numbertemp) {
- // 增加当前
- counttemp++;
- } else {
- // 判断是否比前一个大
- if (counttemp > count) {
- number = numbertemp;
- count = counttemp;
- }
- // 设置当前
- numbertemp = num;
- counttemp = 1;
- }
- }
- // 判断是否比前一个大
- if (counttemp > count) {
- number = numbertemp;
- count = counttemp;
- }
- if (1.0 * count / nums.length > 0.5) {
- return number;
- }
- return Integer.MIN_VALUE;
- }
- }
运行结果
Number=5
0 2 4 6
<script type="text/javascript"><!--google_ad_client = "pub-2908059660288034";/* 728x90,首页中间 创建于 08-8-14 */google_ad_slot = "5903610560";google_ad_width = 728;google_ad_height = 90;//--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 得到数组中最有效的元素和下标
- .输出数组中下标为3的数。和值为3的倍数的元素
- 数组中有效元素个数的统计
- 得到动态数组中元素的个数
- C++ 中数组的指针和下标
- C++ 中数组的指针和下标
- C++中数组的下标和指针
- Java 找数组中与下标相等的元素
- bash shell 获取数组中给定元素的下标
- 删除数组中下标为n的元素
- 删除数组中下标为n的元素(2)
- 模版 取得一个数组中最大元素的下标
- 有一个数组内放10个整数要求找出最小的数&它的下标然后将它&数组中最前面的元素对换
- 第十三周项目1--(3)数组中元素为3倍数的和下标为3倍数的数
- 用下标求vector<double>中所有元素的和
- 303. Range Sum Query - Immutable (计算数组中下标i,j之间元素值的和)
- 求数组最值和下标
- n个元素的数组中找出前K个最大数最有效算法O(nlg(k))
- Java中增强型for循环的样例和解释
- C#中代理和var的用法
- 我能识别1、2、4、5、7几个数字了
- 使用C++实现SDK之WebBrowser容器
- C
- 得到数组中最有效的元素和下标
- 站长工具箱,推荐给各位admin们
- 好书征集译者(第14期)
- 《南方都市报》:三鹿集团300万摆平搜索引擎?
- Windows Vista SP1 Test Drive发布,在浏览器中即可体验
- JBuilder2005直连数据库(sql2000)配置方案
- 中秋将近,祝福CSDN及我的家人
- NVIDIA将全面支持笔记本混合显卡技术
- AMD桌面处理器Roadmap也已泄露