Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาคู่ตัวเลขที่ผลรวมเท่ากับค่าเป้าหมายใน JavaScript

เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ตัวเลขและค่าเป้าหมาย (target) คืนอาร์เรย์ของคู่ตัวเลขที่ผลรวมเท่ากับ target

ใช้ Map object เพื่อตรวจสอบคู่ที่ต้องการในเวลา O(n)

ตัวอย่างโค้ด

const arr = [7, 0, -4, 5, 2, 3];

const allTwoSum = (arr, target) => {
  const map = {};
  const results = [];
  for (let i = 0; i < arr.length; i++) {
    if (map[arr[i]]) {
      results.push([target - arr[i], arr[i]]);
      continue;
    }
    map[target - arr[i]] = true;
  }
  return results;
};

console.log(allTwoSum(arr, 5));

ผลลัพธ์

ค่าที่แสดงในคอนโซลจะเป็นดังนี้:

[ [ 0, 5 ], [ 2, 3 ] ]