`
eimhee
  • 浏览: 2147185 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

得到数组中最有效的元素和下标

阅读更多
先看代码
  1. import java.util.Arrays;

  2. /**
  3.  * 得到数组中最有效的元素和下标.<br>
  4.  * 最有效的只出现频率超过长度一半的数据。
  5.  * 
  6.  * @author 赵学庆 www.java2000.net
  7.  */
  8. public class MyTest {
  9.   public static void main(String[] args) {
  10.     int[] values = new int[] { 535, -5505 };
  11.     int maxValue = getMax(values);
  12.     if (maxValue > Integer.MIN_VALUE) {
  13.       System.out.println("Number=" + maxValue);
  14.       for (int i = 0; i < values.length; i++) {
  15.         if (values[i] == maxValue) {
  16.           System.out.print(i + " ");
  17.         }
  18.       }
  19.     } else {
  20.       System.out.println("没有找到");
  21.     }
  22.   }

  23.   public static int getMax(int[] values) {
  24.     int[] nums = Arrays.copyOf(values, values.length);
  25.     Arrays.sort(nums);
  26.     int number = Integer.MIN_VALUE;
  27.     int count = 0;
  28.     int numbertemp = Integer.MIN_VALUE;
  29.     int counttemp = 0;
  30.     for (int num : nums) {
  31.       if (num == numbertemp) {
  32.         // 增加当前
  33.         counttemp++;
  34.       } else {
  35.         // 判断是否比前一个大
  36.         if (counttemp > count) {
  37.           number = numbertemp;
  38.           count = counttemp;
  39.         }
  40.         // 设置当前
  41.         numbertemp = num;
  42.         counttemp = 1;
  43.       }
  44.     }
  45.     // 判断是否比前一个大
  46.     if (counttemp > count) {
  47.       number = numbertemp;
  48.       count = counttemp;
  49.     }
  50.     if (1.0 * count / nums.length > 0.5) {
  51.       return number;
  52.     }
  53.     return Integer.MIN_VALUE;
  54.   }
  55. }

运行结果
Number=5
0 2 4 6










<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
分享到:
评论

相关推荐

    数组中最大和的子数组

    在数组中,子数组是由数组中任意两个下标i和j(i )确定的一段连续元素的集合,即原数组的第i个元素到第j个元素。因此,数组A[0...n-1]的子数组可以表示为A[i...j],其中0 。 解决这个问题的关键在于设计一个有效的...

    求一个含有8个整数的数组中前3个最大值对应的下标

    首先,我们需要理解问题的核心:在一个包含8个整数的数组中找到前3个最大值的下标。这可以通过排序算法来实现。排序算法有很多种,如冒泡排序、插入排序、选择排序、快速排序、归并排序等。在这个问题中,我们可以...

    求一个数组最小的两个数的下标

    最直观的方法是遍历整个数组,每次找到当前最小值和次小值的下标。具体步骤如下: 1. 初始化两个变量,minIndex1 和 minIndex2,分别表示最小值和次小值的初始下标,通常设为0和1。 2. 遍历数组,从第二个元素...

    数组排序后拿出最大的几个数,并且取它们的下标,包括数组元素相同的情况

    在Java编程中,面对"数组排序后拿出最大的几个数,并且取它们的下标,包括数组元素相同的情况"这样的需求,我们需要使用特定的算法来处理。这个问题可以通过多种方法解决,这里我们将详细介绍一种常见且有效的方法:...

    长度2的指数倍的数组的最大元素.doc

    标题中的“长度2的指数倍的数组的最大元素”指的是在一个数组中寻找最大元素的问题,而这个数组的长度是2的幂次方。这样的数组长度可能是2、4、8、16等,这样的特性使得我们可以利用分治算法来高效地解决这个问题。 ...

    js代码-查找数组中重复出现的元素

    在JavaScript编程中,查找数组中重复出现的元素是一项常见的任务,尤其在数据处理和分析时。这个场景下,我们可以通过几种不同的方法实现。下面将详细解释两种常见的JS代码实现方式,以及它们的工作原理。 首先,...

    js数组的基本用法及数组根据下标(数值或字符)移除元素

    JavaScript数组是一种特殊的对象类型,用于存储有序的数据集合,且每个数据项都可以通过索引被访问。数组的索引通常是从0开始的整数,但在...通过合理使用这些方法,可以有效地管理和操作数组,为开发提供便利。

    js通过指定下标或指定元素进行删除数组的实例

    remove方法首先使用indexOf方法获取元素下标,如果下标有效(即大于-1),则使用splice方法删除该元素。 为了使上述概念更直观,文档中给出了一个简单的示例函数a,它创建了一个包含数字1到5的数组,并通过alert...

    JavaSE进阶-02-数组.pdf

    - **下标**:数组元素通过下标访问,下标从0开始,最后一个元素的下标为`length - 1`。 2. **一维数组的声明和使用** - **声明**:声明数组时,可以使用两种格式:`类型[] 变量名` 或 `类型 变量名[]`。例如,`...

    VB数组PPT课件.pptx

    数组的第一个元素下标通常是0,最后一个元素的下标是`length`。也可以使用`To`声明数组的上下界,如: ```vb Dim arrayname(lower To upper) As type ``` **5.1.2 数组应用** 访问数组元素时,通过下标进行。下标...

    jquery中push()的用法(数组添加元素)

    总体来说,push()方法在jQuery中是一个非常有用的工具,特别在处理动态内容和数据时,它可以有效地向数组中添加新元素。但是,也应当注意,由于push()方法直接修改了原数组,因此在某些情况下,可能需要在操作前复制...

    jQuery根据元素值删除数组元素的方法

    在JavaScript和jQuery中,处理数组是一项常见的任务,其中包括删除数组中的特定元素。本文将深入探讨如何使用jQuery根据元素值删除数组元素,同时也会涉及到相关的JavaScript基础概念。 首先,我们需要了解`jQuery`...

    数组的增删改查

    #### 一、查询(查询数组中所有有效元素) 在Java中,查询数组中的所有有效元素通常采用遍历的方式。以下是一段示例代码: ```java for (int i = 0; i ; i++) { System.out.println(name[i]); } ``` 这段代码...

    程序设计-通过指针引用数组元素.pptx

    在C语言或者类似的编程语言中,我们可以通过多种方式来访问和操作数组中的元素,其中包括下标法、数组名法以及指针变量法。下面我们将详细讨论这三种方法。 首先,**下标法**是最常见也是最直观的方式。我们通过索...

    数组下标法、分治法求解众数

    这种方法通常用于处理有限大小的数据集,它将数组中的每个元素作为下标,并初始化一个与数组长度相同的新数组(计数数组)。遍历原始数组时,若遇到元素值为i,则在计数数组的第i个位置上增加计数。最后,找出计数...

    Chapter数组和矩阵实用PPT课件.pptx

    数组元素的地址可以通过数组首元素地址和下标计算得出,如LOC(i) = a + i * l,其中a是数组首元素地址,l是每个元素的存储大小。 二维数组的存储有两种主要方式:行主映射和列主映射。行主映射按照行优先顺序存储...

    C语言程序设计:第7章 数组.ppt

    【C语言程序设计:第7章 数组】 数组在C语言中是基本的数据结构,它是...总的来说,数组是C语言中基础且重要的数据结构,通过理解和掌握数组的概念、声明、引用、初始化以及动态管理,能有效地进行数据的存储和处理。

    C语言程序设计数组的教学研究

    在C语言中,数组能够有效地组织和处理批量数据,是计算机程序设计中不可或缺的基础知识。 数组的定义涉及三个基本要素:数组元素的类型、元素个数以及数组的名称。数组中的每个元素都有一个下标,用来唯一标识数组...

    单片机的C语言中数组的用法

    数组允许我们在内存中存储一组相同类型的数据,通过下标访问这些数据,从而高效地处理批量数据。在单片机的C51语言环境中,数组的使用尤为关键,因为它们可以帮助我们有效地管理有限的内存资源。 一维数组是最基础...

Global site tag (gtag.js) - Google Analytics