let arr = generateNum()
function generateNum(max) {
max = max == null ? 10000 : max
let temp = []
for(let i = 0; i < max; i++) {
let limit = max > 10000 ? max : 10000
let item = parseInt(Math.random()*limit)
temp.push(item)
}
return temp
}
function bubbleSort(arrData){
for(let i=0; i < arrData.length - 1; i++){
for(let j=0; j < arrData.length - 1 - i; j++){
if(arrData[j] > arrData[j+1]) {
let temp = arrData[j+1]
arrData[j+1] = arrData[j]
arrData[j] = temp
}
}
}
return arr
}
function quickSort(arrData,l,r){
if(l>=r)return;
let i = l,j = r, temp = arrData[l];
while(i < j) {
while(i<j && arrData[j] > temp)
j--
arrData[i] = arrData[j]
while(i<j && arrData[i] <= temp)
i++
arrData[j] = arrData[i]
}
arrData[i] = temp
quickSort(arrData,l,i-1)
quickSort(arrData,i+1,r)
}
function selectSort(arrData) {
for(let i=0;i<arrData.length- 1;i++){
let minIndex = i
for(let j=i+1;j<arrData.length;j++){
if(arrData[minIndex] > arrData[j]){
minIndex = j
}
}
if(minIndex != i) {
let temp = arrData[i]
arrData[i] = arrData[minIndex]
arrData[minIndex] = temp
}
}
}
let arr4 = generateNum()
function InsertionSort(arrData) {
let len = arrData.length
let preIndex,current
for(let i=0; i<len;i++){
current = arrData[i]
preIndex = i - 1
while(preIndex >= 0 && arrData[preIndex] > current){
arrData[preIndex+1] = arrData[preIndex]
preIndex--
}
arrData[preIndex+1] = current
}
return arrData
}
var luckyNumbers = function(matrix) {
let tempArry = []
for(let i=0; i<matrix.length;i++) {
let item = matrix[i]
let minRow = Math.min(...item)
let index = item.indexOf(minRow)
let arr = matrix.map(element => {
return element[index]
})
let maxColumn = Math.max(...arr)
if(minRow === maxColumn) {
tempArry.push(minRow)
return tempArry
}
}
return tempArry
};
let ss = [[1,10,4,2],[9,3,8,7],[15,16,17,12]]
console.time('luckyNumbers')
console.log(luckyNumbers(ss))
console.timeEnd('luckyNumbers')
console