判断数字是否连续问题!!

lyj_rock 2009-08-25 09:03:27
从33个数中随机取出几个数,然后进行排序,判断这一组数是否有连续的.
如 1 2 5 7 8 9 这里边有两组连续的分别为 1 2 和7 8 9 前者我们称之为两连续
后边的7 8 9为三连续,最后返回最大的那个 也就是说返回3就行了 请大家帮帮忙
...全文
308 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyj_rock 2009-08-25
  • 打赏
  • 举报
回复
我自己搞定了
lyj_rock 2009-08-25
  • 打赏
  • 举报
回复
非常感谢楼上的。
kakagui 2009-08-25
  • 打赏
  • 举报
回复
楼上的有点小疏忽,若一个数组可以连到最后,你的程序运行的结果就不对了。
如int num[]={1,2,4,5,6};
kakagui 2009-08-25
  • 打赏
  • 举报
回复

private static int getMaxContinuousNum(int[] a) {
Arrays.sort(a);
int tempCount = 1;
int max=0;
System.out.println(Arrays.toString(a));
for (int i = 0; i < a.length - 1; i++) {
if (a[i + 1] - a[i] == 1) {
tempCount++;
} else {
if(tempCount>max){
max=tempCount;
tempCount=1;
}
else{
tempCount=1;
}
}
}
if(tempCount>max){
max=tempCount;
}
return max;
}
knightzhuwei 2009-08-25
  • 打赏
  • 举报
回复
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

class Test {
public static void main(String[] args) {
Integer[] num=new Integer[15];
Set<Integer> s=new HashSet<Integer>();
while(s.size()<15){
s.add((int)(Math.random()*33));
}
num=s.toArray(num);
Arrays.sort(num);
System.out.println(Arrays.toString(num));
int max=0;
int count=1;
for(int i=1;i<num.length;i++){
if(num[i]-num[i-1]==1){
count++;
}else if(count>max){
max=count;
count=1;
}else{
count=1;
}
}
System.out.println(max);
}
}
knightzhuwei 2009-08-25
  • 打赏
  • 举报
回复
所谓连续 就是后一个数减前一个数等于1 一个指针遍历 两个变量记录 应该就行了

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧