随机生成一个N*N的矩阵,找出鞍点
鞍点:行中最大的数,列中最小的数
例如:
[
[1,9,4],
[8,2,5],
[7,6,3]
]
不存在鞍点
[
[1,2,3],
[4,5,6],
[7,8,9]
]
鞍点为3
步骤
let arr = [
[1, 9, 4],
[8, 2, 5],
[7, 6, 3]
];
let arr2 = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
function ranDomArr(rows,cols) {
let tmp = Array.of();
for(let i = 0;i<rows;i++) {
tmp[i] = [];
for(let k = 0;k<cols;k++) {
tmp[i].push(parseInt(Math.random()*1000));
}
}
return tmp;
}
function eachSaddle(arr) {
let rowArr = [];
let colArr = [];
for (let i = 0; i < arr.length; i++) {
rowArr.push(Math.max.apply(null, arr[i]))
}
let k = 0;
for (let i = 0; i < arr.length; i++) {
let temp = [];
for (let j = 0; j < arr.length; j++) {
temp.push(arr[j][k])
}
k++;
colArr.push(temp);
}
let colMinArr = []
for (let x = 0; x < colArr.length; x++) {
colMinArr.push(Math.min.apply(null, colArr[x]));
}
let x = rowArr.filter(item => {
if (colMinArr.indexOf(item) > 0) {
return item;
}
});
if (x.length === 0) {
return '没有鞍点';
} else {
return x[0];
}
}
测试arr
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/56ce57803c814738ec6b035989090dce.png)
测试arr2
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b24c7c34cb2fe3599433c3ad4d0e7ef2.png)