来自: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]);
}
}
分享到:
相关推荐
Javascript Basic 1、Javascript 概述(了解) Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 -... 2、在函数体中,如果 a 大于 b的话...
js代码-第1天 用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值
然后数组清零,多文件对话框保存到音乐路径程序集变量中。默认选择第一个,然后获取焦点。定义个程序集数组变量存储路径 2:加入列表框:判断取数组成员数的音乐路径不等于0,在判断列表框的表项数不等于0,那么就取...
输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位置从新开始计数,...
在第一个GroupBox 中放入3 个TextBox 控件和一个Button 按钮,分别用于输入数字、输入加密数字、显示加 密后的数字和计算加密信息;在第二个GroupBox 中放入一个TextBox 控件和一个Button 按钮,分别用于显示 解密后...
用法ACORN.prototype.random = function(seed, length) 从指定长度的种子中生成一个数组,该种子用[0,1)中的数字填充。 为了避免较小的第一个元素,建议使用大于10 ^ 5的种子。 seed :生成器的种子。 请注意,使用...
比较两个数组的值谁小,谁小就放到我们的数组中 如果比较完之后还有剩余的数据,那么用while直接添加到我们的总数组中 优化思路 当递归到规模足够小时,利用插入排序 归并前判断一下...
1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main的正确定义是什么...
1.5.6. 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数 ....... 116 1.5.7. 输入一个表示整数的字符串,把该字符串转换成整数并输出.............. 118 1.5.8. 给出一个数列,找出其中最长的单调...
书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...
返回值:0=最高,1=高于标准,2=实时,3=标准,4=低于标准,5=低,返回-1表示无权限访问进程。 2、新增“进程_置优先级”,特殊进程需要特权,设置一个进程的优先级别,成功返回真,失败返回假。 3、新增“窗口_取激活句柄...
过程该问题已通过以下方式解决:声明了函数生成密码制作了每个大写字母的数组,还制作了(几乎)每个特殊字符的数组。对于小写,将函数.toLowerCase()应用于大写数组,并使用数字字符Math.Random()声明了while...
o 3.5 在 C 中是否有模拟继承等面向对象程序设计特性的好方法? o 3.6 我遇到这样声明结构的代码: struct name { int namelen; char namestr[1];}; 然后又使用一些内存分配技巧使 namestr 数组用起来好像有多个...
73、原生JavaScript判断字符串是否大于规定的长度 74、原生JavaScript判断字符串是为网址不区分大小写 75、原生JavaScript判断字符串是否为小数 76、原生JavaScript判断字符串是否为整数 77、原生JavaScript判断字符...
BoundaryType定义了一个枚举,表示变量超出约束范围时为恢复到约束范围所采用的处理方式,分别是NONE(不处理),WRAP(加减若干整数个区间长度),BOUNCE(超出部分向区间内部折叠),STICK(取超出方向的最大限定值...
7.17 怎样说明一个大于64KB的数组? 7.18 far和near之间有什么区别? 7.19 什么时候使用far指针? 7.20 什么是栈(stack)? 7.21 什么是堆(heap)? 7.22 两次释放一个指针会导致什么结果? 7.23 NULL和NUL有...