Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Kiểm tra hai mảng có thể gộp thành dãy liên tiếp - JavaScript

Viết hàm nhận 2 mảng, kiểm tra nếu gộp và sắp xếp lại có tạo thành dãy số liên tiếp hay không.

Ví dụ

Mảng 1: [4, 6, 2, 9, 3]

Mảng 2: [1, 5, 8, 7]

Gộp: [1,2,3,4,5,6,7,8,9] → liên tiếp → true

Giải pháp

Mã triển khai:

const arr1 = [4, 6, 2, 9, 3];
const arr2 = [1, 5, 8, 7];

const canFormSequence = (arr1, arr2) => {
  const combined = [...arr1, ...arr2].sort((a, b) => a - b);
  if (combined.length < 2) return true;
  
  // Kiểm tra công sai = 1
  for (let i = 1; i < combined.length; i++) {
    if (combined[i] - combined[i-1] !== 1) return false;
  }
  return true;
};

console.log(canFormSequence(arr1, arr2));

Kết quả

Đầu ra trong console:

true

Sửa lỗi code gốc: Code gốc kiểm tra commonDifference giữa 2 phần tử đầu, nhưng nên kiểm tra công sai = 1 cho dãy liên tiếp.