日期:2014-05-20  浏览次数:20704 次

一个数组的问题
我产生的随即数字是这样的  
1,5,7,8,12,13  
然后我想得到的结果是  
1,5,8,12  
就是我得到的第一个数字保留,每个数字的间距大于2的则保留,其他的删掉
应该怎么实现啊,我想不出好的办法来,谢谢各位大侠了!  
有好心人,给个你们实现的代码哦,大家共同进步  



------解决方案--------------------
产生1、5、8、13或者1、7、12行不?
------解决方案--------------------
int[] arr = new int[]{1,5,7,8,12,13};
List <Integer> result = new ArrayList <Integer> ();
int temp;
result.add(arr[0]);
temp = arr[0];
for(int i = 0; i < arr.length; i++){
if(arr[i] > temp + 2){
result.add(arr[i]);
temp = arr[i];
}
}
System.out.println(Arrays.asList(result));
------解决方案--------------------
如果需要先产生一系列随机数,然后再筛选,那就把这些数保存在链式结构中(如LinkedList)
如果是产生一个筛选一个,那就好办多了,符合的就保留,不符合就不要
------解决方案--------------------
应该是比较简单的,多想想吧.