//一开始想当然的写了两层循环//每次内循环结束,外循环继续,就会重新执行内循环function findNumberIn2DArray(arr,target) { let m = arr.length let n = arr[0].length for (let i =n-1; i >= 0; i--){ for(let j=0; j<m;j++) { if(arr[j,i]>target){ break }else if(arr[j,i]<target){ continue }else { return true } } } return false}// 可以用while function findNumberIn2DArray(matrix,target) { if(matrix.length ==0 || matrix[0].length ==0){ return false } let rows = matrix.length let cols = matrix[0].length let [m,n] = [0,cols-1] while(m<rows&&n>=0){ let item = matrix[m,n] if(item>target){ n-- }else if(item<target){ m++ } if(item===target){ return true } } return false}//不知道为什么超时,之前提交成功的是下面这个就可以var findNumberIn2DArray = function(matrix, target) { if(matrix.length ==0 || matrix[0].length ==0){ return false } let rows = matrix.length let cols = matrix[0].length let row = 0 let col = cols-1 while(row<rows && col>=0){ let item = matrix[row][col] if(item === target){ return true } if( item< target ){ row++ }else{ col-- } } return false};