เพิ่มลำดับอย่างเคร่งครัด
ลำดับกำลัง เพิ่มขึ้นอย่างเคร่งครัด ถ้าหากว่า arr[0]
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขสองอาร์เรย์ arr1 และ arr2 เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สองตามลำดับ
เราสามารถสลับองค์ประกอบจำนวนเท่าใดก็ได้จาก arr1 เป็น arr2 ซึ่งเกิดขึ้นกับดัชนีเดียวกัน หมายความว่าเราสามารถสลับ arr1[i] กับ arr2[i] ได้ ฟังก์ชันของเราควรส่งคืนจำนวนการแลกเปลี่ยนขั้นต่ำเพื่อให้ทั้งสองลำดับเพิ่มขึ้นอย่างเคร่งครัด
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ
ป้อนข้อมูล
ผลผลิต
คำอธิบายผลลัพธ์
เพราะถ้าเราสลับ arr1[3] กับ arr2[3] อาร์เรย์ทั้งสองจะเพิ่มขึ้นอย่างเคร่งครัด
ต่อไปนี้เป็นรหัส -ปัญหา
const arr1 = [1, 3, 5, 4];
const arr2 = [1, 2, 3, 7];
const output = 1;
ตัวอย่าง
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