如何验证数字数组是否为无间隔的递增序列?
验证无间隔递增数字序列的函数实现
核心逻辑
要判断数组是否是无间隔的递增序列,只需要检查每一对相邻元素的差值是否严格等于1——因为是递增序列,所以后一个元素必须比前一个大1,只要有一对不满足,直接判定为false。
代码实现(JavaScript)
function isConsecutiveSequence(items) { // 空数组或单个元素的情况,没有间隔问题,直接返回true if (items.length <= 1) return true; // 遍历数组,从第二个元素开始对比前一个 for (let i = 1; i < items.length; i++) { if (items[i] - items[i - 1] !== 1) { return false; } } // 所有相邻元素都满足差值为1,返回true return true; }
测试示例
// 符合条件的情况 console.log(isConsecutiveSequence([1,2,3,4])); // true console.log(isConsecutiveSequence([5,6,7])); // true console.log(isConsecutiveSequence([-2,-1,0])); // true // 不符合条件的情况 console.log(isConsecutiveSequence([1,2,4])); // false console.log(isConsecutiveSequence([3,2,1])); // false console.log(isConsecutiveSequence([10,12])); // false // 边界情况 console.log(isConsecutiveSequence([])); // true console.log(isConsecutiveSequence([99])); // true
补充说明
- 数组可以从任意整数开始(正数、负数都支持),只要相邻元素差为1即可
- 空数组或单个元素默认符合条件,因为不存在“间隔”问题
- 如果数组是递减或差值不为1的递增,都会返回false
内容的提问来源于stack exchange,提问作者ahols
相关产品推荐
相关产品推荐

