输入:一个二维数组,每一个元素为0或者1
输出:最多有多少个1是连续的
连续的定义:上下左右相邻
直接贴代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> const arr = [ [1, 0, 1, 1, 0], [1, 0, 0], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1], ]; function getNumber(arr, i, j){ let num = 1; arr[i][j] = 0; if(arr[i-1]&& arr[i-1][j]){ //上边 num += getNumber(arr,i - 1, j); } if(arr[i+1]&& arr[i+1][j]){ //下边 num += getNumber(arr,i + 1, j); } if(arr[i][j-1]){ //左边 num += getNumber(arr,i, j - 1); } if(arr[i][j+1]){ //右边 num += getNumber(arr,i, j + 1 ); } return num } function getMax(arr){ let max = 0 for(let i =0 ;i<arr.length;i++){ for(let j = 0; j< arr[i].length; j++){ const ele = arr[i][j] if(ele === 1){ const cur = getNumber(arr, i,j) cur > max && (max = cur) } } } return max } const start = window.performance.now() console.log(getMax(arr)) console.log('用时:',window.performance.now() - start) </script> </body> </html>