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));
}
}

