เรามีช่วงสองชุด ช่วงหนึ่งคือช่วงเดียวของความยาวใดๆ (R1) และอีกช่วงคือชุดของช่วง (R2) บางส่วนหรือบางส่วนซึ่งอาจอยู่ภายในช่วงเดียว (R1) หรือไม่ก็ได้
เราจำเป็นต้องคำนวณผลรวมของช่วงใน (R2) - ทั้งหมดหรือบางส่วน - ซึ่งอยู่ภายในช่วงเดียว (R1)
const R1 = [20,40]; const R2 = [[14,22],[24,27],[31,35],[38,56]];
ผลลัพธ์
= 2+3+4+2 = 11
R1 = [120,356]; R2 = [[234,567]];
ผลลัพธ์
122
ตัวอย่าง
ให้เราเขียนโค้ด -
const R1 = [20,40]; const R2 = [[14,22],[24,27],[31,35],[38,56]]; const R3 = [120,356]; const R4 = [[234,567]]; function sumRanges(range, values) { const [start, end] = range; const res = values.reduce((acc, val) => { const [left, right] = val; const ex1 = Math.min(right, end); const ex2 = Math.max(left, start); const diff = ex1 - ex2; return acc + Math.max(0, diff); }, 0); return res; }; console.log(sumRanges(R1, R2)); console.log(sumRanges(R3, R4));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
11 122