阿里2022-3-14笔试
第一题
枚举
第二题
package org.oj01; import java.util.*; public class Main { /** * 100 1110 * @param args */ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int m=sc.nextInt(); int n=sc.nextInt(); int res=0; int[][] nums=new int[m+1][n+1]; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ nums[i][j]=sc.nextInt(); } } int[][] left=new int[m+1][n+1]; int[][] right=new int[m+1][n+2]; int[][] up=new int[m+1][n+2]; int[][] down=new int[m+2][n+1]; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ left[i][j]=left[i][j-1]+nums[i][j]; } } for(int i=1;i<=m;i++){ for(int j=n;j>=1;j--){ right[i][j]=right[i][j+1]+nums[i][j]; } } for(int j=1;j<=n;j++){ for(int i=1;i<=m;i++){ up[i][j]=up[i-1][j]+nums[i][j]; } } for(int j=1;j<=n;j++){ for(int i=m;i>=1;i--){ down[i][j]=down[i+1][j]+nums[i][j]; } } System.out.println("矩阵"); for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ System.out.print(left[i][j]+" "); } System.out.println(); } System.out.println("矩阵"); for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ System.out.print(up[i][j]+" "); } System.out.println(); } for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(nums[i][j]==0){ if(up[i][j]!=0){ res+=1; } if(down[i][j]!=0){ res+=1; } if(left[i][j]!=0){ res+=1; } if(right[i][j]!=0){ res+=1; } } } } System.out.println(res); } }