เพิ่มลำดับอย่างเคร่งครัด
ลำดับกำลัง เพิ่มขึ้นอย่างเคร่งครัด ถ้าหากว่า arr[0]
ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขสองอาร์เรย์ arr1 และ arr2 เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สองตามลำดับ
เราสามารถสลับองค์ประกอบจำนวนเท่าใดก็ได้จาก arr1 เป็น arr2 ซึ่งเกิดขึ้นกับดัชนีเดียวกัน หมายความว่าเราสามารถสลับ arr1[i] กับ arr2[i] ได้ ฟังก์ชันของเราควรส่งคืนจำนวนการแลกเปลี่ยนขั้นต่ำเพื่อให้ทั้งสองลำดับเพิ่มขึ้นอย่างเคร่งครัด
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ
ป้อนข้อมูล
const arr1 = [1, 3, 5, 4]; const arr2 = [1, 2, 3, 7];
ผลผลิต
const output = 1;
คำอธิบายผลลัพธ์
เพราะถ้าเราสลับ arr1[3] กับ arr2[3] อาร์เรย์ทั้งสองจะเพิ่มขึ้นอย่างเคร่งครัด
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr1 = [1, 3, 5, 4]; const arr2 = [1, 2, 3, 7]; const findSwaps = (arr1 = [], arr2 = []) => { let map = { true: 1, false: 0, }; for (let i = 1; i < arr1.length; i++) { const current = { true: Infinity, false: Infinity, } if (arr1[i] > arr2[i - 1] && arr2[i] > arr1[i - 1]) { current.true = Math.min( current.true, map.false + 1, ) current.false = Math.min( current.false, map.true) } if (arr2[i] > arr2[i - 1] && arr1[i] > arr1[i - 1]) { current.true = Math.min( current.true, map.true + 1, ) current.false = Math.min( current.false, map.false) } map = current } return Math.min( map.false, map.true) } console.log(findSwaps(arr1, arr2));
ผลลัพธ์
1