java获取一维数组中连续数字分成几个连续的数字数组
2016-07-09 22:54
746 查看
java获取一维数组中连续数字分成几个连续的数字数组
比如{12,13,14,23,24,34,45,46,47,48,56} 分成【12,13,14】【23,24】【34】【45,46,47,48】【56】等
public static void main(String[] args) {
int[] array={12,13,14,23,24,34,45,46,47,48,56};
int[][] arrays=lianxushuzi.getContinuousNumber(array);
for(int i=0;i<arrays.length;i++)
{
System.out.println(Arrays.toString(arrays[i]));
}
}
针对上面的情况,二维数组太浪费空间,所以采用list方式去获取连续的数字最大的数组。
这次会获取到【45,46,47,48】
比如{12,13,14,23,24,34,45,46,47,48,56} 分成【12,13,14】【23,24】【34】【45,46,47,48】【56】等
public static int[][] getContinuousNumber(int[] array) { int[][]arrays=new int[array.length][array.length]; //二维数组的i和j int i=0; int j=0; //记录当前最大值为数组的第一个,减一是为了保证后面数组的第一个大于最大值,添加进入二维数组 int max=array[0]-1; for(int k=0;k<array.length;k++) { //当不是连续数字的时候,放到下一个数组里面,并且把j设置为0,最大值为当前值-1 if(array[k]!=max+1) { i++; j=0; max=array[k]-1; } arrays[i][j]=array[k]; max=array[k]; j++; } return arrays; }
public static void main(String[] args) {
int[] array={12,13,14,23,24,34,45,46,47,48,56};
int[][] arrays=lianxushuzi.getContinuousNumber(array);
for(int i=0;i<arrays.length;i++)
{
System.out.println(Arrays.toString(arrays[i]));
}
}
针对上面的情况,二维数组太浪费空间,所以采用list方式去获取连续的数字最大的数组。
这次会获取到【45,46,47,48】
public static Integer[] getMaxContinuousNumber(int[] array) { ArrayList<Integer> maxArrays=new ArrayList<Integer>(); ArrayList<Integer> nowArrays=new ArrayList<Integer>(); int max=array[0]-1; for(int i=0;i<array.length;i++) { if(array[i]!=max+1) { max=array[i]-1; nowArrays.clear(); } nowArrays.add(array[i]); max=array[i]; if(nowArrays.size()>=maxArrays.size()) { //maxArrays=nowArrays;这种情况是吧nowdays的地址赋值给了maxarrays的地址,这样以后只要nowarrays的地址改变,maxarrays的值也会改变 maxArrays=(ArrayList<Integer>) nowArrays.clone(); } } return (Integer[]) maxArrays.toArray(new Integer[]{}); }
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法