Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เลขนำโชคในเมทริกซ์ใน JavaScript


ด้วยเมทริกซ์ของตัวเลขที่แตกต่างกัน m * n เราต้องส่งคืนตัวเลขนำโชคทั้งหมดในอาร์เรย์ 2 มิติ (เมทริกซ์) ในลำดับใดก็ได้

เลขนำโชคคือองค์ประกอบของเมทริกซ์ โดยเป็นองค์ประกอบขั้นต่ำในแถวและสูงสุดในคอลัมน์

ตัวอย่าง − หากอาร์เรย์อินพุตเป็น −

const arr = [
   [3,7,8],
   [9,11,13],
   [15,16,17]
];

จากนั้นผลลัพธ์ควรเป็น −

const output = [15];

เพราะเลข 15 เป็นเลขนำโชคเพียงตัวเดียวเนื่องจากเป็นค่าต่ำสุดในแถวและสูงสุดในคอลัมน์

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [
   [3,7,8],
   [9,11,13],
   [15,16,17]
];
const luckyNumbers = (arr, res = []) => {
   let M = arr.length, N = arr[0].length;
   let min = Array(M).fill( Infinity);
   let max = Array(N).fill(-Infinity);
   for (let i = 0; i < M; ++i)
   for (let j = 0; j < N; ++j)
   min[i] = Math.min(min[i], arr[i][j]),
   max[j] = Math.max(max[j], arr[i][j]);
   for (let i = 0; i < M; ++i)
   for (let j = 0; j < N; ++j)
   if (min[i] == max[j])
   res.push(arr[i][j]);
   return res;
};
console.log(luckyNumbers(arr));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[15]