輸入:一個二維數組,每一個元素為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>
