我有一些不同的整数,如[46, 18, 49, 15]
我想知道的是否有任何数字接近任何其他数字在这种情况下没有任何所以函数必须返回false,但是如果有例如[14, 31, 13, 40, 30]
30和31是关闭的,14和13是彼此的,所以函数必须返回true。
谢谢!
答案 0 :(得分:4)
对数字进行排序。然后遍历数字,并为每个数字查看此数字是否等于下一个数字减1.如果为真,则返回true
。否则,如果完成循环,则返回false
。
答案 1 :(得分:2)
只需对其进行排序并检查增量。
function close(a) {
a.sort(function (a, b) { return a - b; });
return a.some(function (b, i, aa) {
return i && b - aa[i - 1] <= 1;
});
}
document.write(close([14, 31, 13, 40, 30])+'<br>');
document.write(close([46, 18, 49, 15]) + '<br>');