ด้วยเมทริกซ์ของตัวเลขที่แตกต่างกัน 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]