怎么判断long数组中的单个值是否为连续(急急。。)求大神 数组 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 10001,10002,,10003 10006,10008,10010 这个数据是什么形式呢,在list中,还是?定义两个变量,第一个相连的开始为止,相连的结束位置。记住第一个的位置,然后前一个+1 等于后一个的话,说明相连,一直继续到不相连为止,那么开始位置和结束位置之间的就相连。不相连后,从下一个重新开始。 long[] arr ={1001,1002,1003,1004,1006}; for (int i = 0; i < arr.length; i++) { if (i == arr.length-1) { return; } if (arr[i]+1 != arr[i+1]) { System.out.println("不是连续的"); break; } } 那就按照1楼说的方法,遍历吧。两个变量记录开始和技术位置。每组结束时,可将这组值放进一个map中,map记录开始位置(key)和连续长度(value)就可以了。最后看map中元素数量,就知道有多少组连续的值了,想知道最长连续多长,找map中value最大的就是了。这里就不给你写代码了,自己写代码吧。 long[] longs={1,2,3,7,8,10,11,12,13,18,19}; Map<Long,Long> map=new HashMap<Long, Long>(); Long start=longs[0]; Long value=1L; for(int i=1;i<longs.length;i++){ long curr=longs[i]; boolean flag=curr-longs[i-1]==1; if(flag){ value++; } if(!flag||i==longs.length-1){ if(value>1) map.put(start, value); value=1L; start=curr; } } Set<Long> keys=map.keySet(); Iterator<Long> iterator=keys.iterator(); while(iterator.hasNext()){ Long key=iterator.next(); System.out.println("从"+key+"开始有连续"+map.get(key)+"个"); } 关于java中的父类的问题 新手求解错误 请教问题来的,谢谢大家进来帮我解决一下,在此谢过了... 面试题 从一道SCJP 试题来看你对继承和多态的理解程度? 图片显示成缩略图遇到的问题~~ 大家来帮帮忙啊 客户端如何往服务器传数据 在java 中 如何定义一个可以存储300个字符的字符串 一个超级难的字符串解析!!!!! 如何在jb5中使用命令行??? session PreparedStatement的批量更新的问题(只执行最后一条插入语句)
定义两个变量,第一个相连的开始为止,相连的结束位置。
记住第一个的位置,然后前一个+1 等于后一个的话,说明相连,一直继续到不相连为止,那么开始位置和结束位置之间的就相连。
不相连后,从下一个重新开始。
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
return;
}
if (arr[i]+1 != arr[i+1]) {
System.out.println("不是连续的");
break;
}
}
每组结束时,可将这组值放进一个map中,map记录开始位置(key)和连续长度(value)就可以了。
最后看map中元素数量,就知道有多少组连续的值了,想知道最长连续多长,找map中value最大的就是了。
这里就不给你写代码了,自己写代码吧。
Map<Long,Long> map=new HashMap<Long, Long>();
Long start=longs[0];
Long value=1L;
for(int i=1;i<longs.length;i++){
long curr=longs[i];
boolean flag=curr-longs[i-1]==1;
if(flag){
value++;
}
if(!flag||i==longs.length-1){
if(value>1)
map.put(start, value);
value=1L;
start=curr;
}
}
Set<Long> keys=map.keySet();
Iterator<Long> iterator=keys.iterator();
while(iterator.hasNext()){
Long key=iterator.next();
System.out.println("从"+key+"开始有连续"+map.get(key)+"个");
}