zoukankan      html  css  js  c++  java
  • 二维数组上下左右连续几个1

    输入:一个二维数组,每一个元素为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>
    

      

     

  • 相关阅读:
    单向循环列表(Java实现)
    单链表的实现(Java实现)
    二分查找法(Java实现)
    六大排序算法(Java实现)
    学习python第十天
    学习python第九天
    MapNode
    AtomicReference
    AtomicStampedReference
    尾递归(TailRecursion)
  • 原文地址:https://www.cnblogs.com/aloneindefeat/p/13564895.html
Copyright © 2011-2022 走看看