360笔试第一题思路8.15
全部小方块面积-行之间相互抵消面积-列之间相互抵消面积()-自己位置相互抵消面积(A[i][j]-1)-地面接触面积
我这些样想的,只过了18%。。哭
package 面试真题; import java.util.Scanner; public class 笔试3601 { public static int Sum(int[][] input,int m,int n) { int dec=0;//需要减去的 for(int i=0;i<m;i++)//行之间 for(int j=0;j<n;j++) { if(j>0) { //少考虑大于1的情况 if(input[i][j]>=1&&input[i][j-1]>=1) { if(input[i][j]<=input[i][j-1]) { dec+=input[i][j]; }else { dec+=input[i][j-1]; } } } } for(int i=0;i<n;i++) {//列之间 for(int j=0;j<m;j++) { if(j>1) { if(input[j][i]>=1&&input[j-1][i]>=1) { if(input[j][i]<=input[j-1][i]) { dec+=input[j][i]; }else { dec+=input[j-1][i]; } } } } } //一个大于1的情况 自己 for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { dec+=input[i][j]-1; } } dec=2*dec;//减去的面 不包括地面 //地面 dec=dec+m*n; return dec; } public static void main(String[] args) { int sum=0; Scanner str=new Scanner(System.in); int index=str.nextInt(); int index0=str.nextInt(); int input[][]=new int[index][index0]; int outpot[][]=new int[index][index0]; for(int i=0;i<index;i++) { for(int j=0;j<index0;j++) { input[i][j]=str.nextInt(); sum+=input[i][j]*6; } } System.out.println(sum-Sum(input,index,index0)); } }