`

随机数构成的数组中找到长度大于=3的最长的等差数列

    博客分类:
  • Java
阅读更多
来自:http://www.iteye.com/problems/64504?page=2

    @SuppressWarnings("unchecked")
    private static void getArithmeticProgression(int[] array) {
        /* 排序 */
        Arrays.sort(array);
        /* 存放最大等差数列的容器 */
        ArrayList<Integer> maxList = new ArrayList<Integer>();
        /* 存放等差数列的临时容器 */
        ArrayList<Integer> tmpList = new ArrayList<Integer>();
        int len = array.length;
        for (int i = 0; i < len; i++) {
            for (int j = i + 1; j < len; j++) {
                /* 清空list */
                tmpList.clear();
                /* 添加数列的第一个元素 */
                tmpList.add(i);
                /* 添加数列的第二个元素*/
                tmpList.add(j);
                /* 当前数列的元素个数 */
                int num = 2;
                /* 等差 */
                int progression = array[j] - array[i];
                /* 当前元素位置 */
                int current = j;
                /* 下一个元素位置 */
                int next = j + 1;
                /* 从current开始遍历*/
                while (next < len) {
                    /*下一个元素和当前元素是等差数列*/
                    if (array[next] - array[current] == progression) {
                        tmpList.add(next);
                        current = next;
                        num++;
                    }
                    next++;
                }
                /* 设定最大等差数列*/
                if (num >= maxList.size()) {
                    maxList = (ArrayList<Integer>)tmpList.clone();
                }
            }
        }
        /* 输出结果 */
        for (Integer o : maxList) {
            System.out.println(array[o]);
        }
    }
分享到:
评论
2 楼 hudingchen 2011-09-02  
chriszeng87 写道
这个效率也太低了吧

看了帖子,就随便写了一个,你的效率高,不妨贴出来看看??
1 楼 chriszeng87 2011-08-30  
这个效率也太低了吧

相关推荐

    js代码-第1天 用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值

    然后,它会递归地调用自身,减少数组长度并添加新的随机数。 `main.js`文件可能包含了上述代码的实现,而`README.txt`文件可能是对这个代码的解释或使用指南,包括如何运行和测试这段代码。 了解递归算法并能熟练...

    选取随机数的代码

    根据给定的信息,本文将详细解释“选取随机数的代码”这一知识点,包括代码功能、实现原理以及应用场景等。 ### 一、代码功能概述 该段代码的主要功能是从一个`Job`类型的数组`j`中随机选取`count`个元素,并确保...

    js随机数

    在JavaScript编程中,随机数生成是一项非常实用的功能,常被应用于游戏开发、密码学、数据分析等多个领域。通过生成随机数,开发者可以实现诸如抽奖系统、验证码生成、安全密钥等应用场景。本文将深入探讨如何利用...

    7 MATLAB数组深入学习.zip

    4. 数组元素操作:可以使用索引或者布尔数组来修改或提取数组元素,如`a(a &gt; 3) = 0`将a中大于3的元素设为0。 5. 数组函数:MATLAB内置了许多针对数组的操作函数,如`max`、`min`、`mean`、`sum`、`prod`等。 四、...

    matlab 矩阵数组 matlab 矩阵数组

    Matlab 是一种强大的...这些基础知识构成了 Matlab 中矩阵数组操作的基础,熟练掌握它们对于进行复杂的数值计算和编程至关重要。通过这些操作,你可以创建、修改和分析各种类型的矩阵,从而解决各种科学和工程问题。

    5.数组作业答案1

    动态初始化只指定数组长度,如上述例子。 3. **遍历数组** - 遍历数组常见的方法是使用for循环,如`for(int i = 0; i ; i++) { System.out.println(newArr[i]);}`。另一种更简洁的方式是使用增强型for循环...

    C程序设计_数组_实验报告

    - **运行情况**:程序能够正确生成一个递增的随机数数组,并允许用户输入一个数字来进行查找。 #### (3)字符串连接 **程序实现**: ```c #include void main() { char a[50], b[50]; int i = 0, j = 0; ...

    javascript入门笔记

    Javascript Basic 1、Javascript 概述(了解) Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 -... 2、在函数体中,如果 a 大于 b的话...

    对随机数进行快速排序

    当数组长度大于1时,先调用`Partition`函数确定基准的位置,然后对基准左边的子数组和右边的子数组分别递归调用`QuickSort`,直至数组只剩下一个元素或为空。 4. `main` 函数:这是程序的主入口点。在这里,首先...

    C语言第六章数组PPT课件.pptx

    - 当全部数组元素赋初值时,可不指定数组长度。 - 示例:`inta[5]={6,2,3};` - 等价于:`a[0]=6;a[1]=2;a[2]=3;a[3]=0;a[4]=0;` - 只给部分数组元素赋初值时,剩余元素默认为0。 - 示例:`inta[]={1,2,3,4,5,6}...

    易语言冒泡排序.rar

    常量 数组长度, 10 // 假设数组长度为10 .整数型 数组(数组长度) // 定义整数型数组 // 初始化数组,填充随机数据 循环 数组长度 数组(循环索引) = 随机数(1, 100) 结束循环 // 冒泡排序过程 循环 数组长度...

    asp随机生成6位纯数字

    - **数组索引**:通过计算得到的随机数作为数组索引,从而选取数组中的一个元素。 - **字符串拼接**:每次循环都向`m_strRandomize`变量追加一个新的字符,最终形成完整的随机数字串。 #### 总结 通过上述分析和...

    C经典算法之合并排序法

    - 当其中一个数组遍历完后,将另一个数组剩余的元素依次复制到 `number3` 中。 ### 四、合并排序的特点与应用场景 #### 特点 - **稳定性**:合并排序是稳定的排序算法,即相等的元素保持原有的相对顺序。 - **时间...

    基于LabVIEW 的极值查找

    2. **极值查找**:根据极大值与极小值的定义,编写程序查找随机数数组中的所有极大值与极小值。 3. **结果显示**:将查找到的极大值与极小值分别存储在一个数组中并显示出来。 ##### 2.2 主要设计过程 1. **随机数...

    JS 在指定数组中随机取出N个不重复的数据

    总之,通过上述方法,我们可以在一个指定的数组中随机取出若干个不重复的元素,并且能够灵活应对数组长度小于抽取数量的情况。这个技术在很多编程场景中都有用处,比如抽奖程序、随机化游戏逻辑等。

    php中实现获取随机数组列表的自定义函数

    ids数组中随机选取键值,但是选取的数量是通过min函数计算得到的,确保不会超过$_base_ids数组的长度或传入的$limited参数加上10,这样做是为了在选取的键值数量不足以满足$limited时,尽可能地保证能返回足够数量的...

    php将字符串随机分割成不同长度数组的方法

    在某些情况下,我们需要将一个字符串随机分割成多个长度不一的子字符串,并将这些子字符串存储到一个数组中。这样的操作在处理文本数据时非常实用,例如对文本进行随机打乱或创建动态生成的内容等。 php将字符串...

    java趣味编程100实例.docx

    在`generateRandomNumber()`方法中,首先检查输入参数的有效性,确保`begin且`(end - begin)`大于等于`size`,防止生成的数组长度超出范围。 4. **用户交互**: 通过`Scanner`类获取用户输入,实现简单的命令行...

    js代码-给定一个数组a和一个长度值l,生成一个指定长度值为l的新数组b,要求b中的每一个元素都是从a中随机获取的,且数组元素不可重复。

    - `Array`对象提供了丰富的内置方法,如`length`属性用于获取数组的长度,`push()`方法用于向数组末尾添加元素,`slice()`用于提取数组的一部分形成新数组,`splice()`用于删除或替换数组中的元素等。 - 在此问题...

    php获取随机数组列表的方法

    在进行Web开发的过程中,常常需要从数组中随机获取元素,比如生成随机验证码、随机抽取样本来进行数据分析,以及随机生成数字ID等场景。PHP提供的内置函数可以让我们轻松实现这些功能。 首先,我们来看一下`array_...

Global site tag (gtag.js) - Google Analytics