Java判断是否有连数,比如12,13,14
java怎样判断任意10个数中不存在任意3个数是连数?
[解决办法]
没感觉很难实现啊,除非你还追求什么超高效啥的,你是打算直接求现成代码啊还是算法啊?
先把这10个数字排个顺序,接下来就简单了吧?
设个阈值器,从头遍历到尾,当前的是上一个的连续数的就阈值+1,此时阈值==2就说明满足要求了;不是连续数就立即清0。
[解决办法]
[解决办法]
天才。。。。
[解决办法]
2楼的方法 如果有相同大小的数 会有问题
[解决办法]
将改数组排序,然后用排序后的数组Array[i]-Array[i-1],获得一个相邻数差值的新数组,此时判断该新数组中如果是否有3个连续的值为1的元素。
[解决办法]
[解决办法]
排序后 1 2 2 3 5 这种情况 你的方法就满足不了把
[解决办法]
你的阈值器 的值 分别是 1 0 1 在处理 1 2 2 3 的时候
[解决办法]
判断第一个和第三个熟的和是不是等于第二个数的2倍 而且 第一个和第三个数不相等,
以此类推
[解决办法]
加群:199632302 进行交流
[解决办法]
2楼的方法可以,并且没必要清零,楼主要的是判断 只要任意10个数中存在连数就可以输出结果了,如果楼主有其他要求 请说出来
[解决办法]
- Java code
public class FindSeq { private int[] arr = null; private int length = 0; public FindSeq(int [] arr){ this.arr = arr; this.length = arr.length; } /** * @param args */ public static void main(String[] args) { FindSeq findSeq = new FindSeq(new int[] {1,3,3,12,2}); findSeq.find3Seq(); } public void find3Seq(){ int index = 0; boolean has = false; while(index < length - 2){ if(find3Seq(index)){ has = true; break; }else{ index += 3; } } System.out.print(has); } private boolean find3Seq(int index){ return arr[index] + 1 == arr[index + 1] && arr[index + 1] + 1 == arr[index + 2]; }}
[解决办法]
晕,while里的else应该写
index++
才对
[解决办法]
怎么说LZ才好呢,需要找出是否是连数,就像楼上一些大神说的一样,你直接来个冒泡排序,小到大或者大到小都可以,然后最后循环排序后的数组,比较不就可以了么!
[解决办法]
楼主的意思...
345859632
假如这一串数字
其中连续的数有3、4、5 和 58、59
[解决办法]
先排序倒是真的,然后就好办咯,哈哈!天才