360提前批笔试第一题,题目例子可以通过,AC为0,求大神

#include<iostream>
#include<algorithm>
#include<vector> 
using namespace std;

int a[1001][1001];
int main(){
    int n,m;
    
    cin>>n>>m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    int sum_res = 0;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
        	int temp;
        	if(a[i][j]==1) temp=6;
        	else if(a[i][j]==2) temp=10;
        	else temp= 4*(a[i][j]-2)+5*2;
            if(i-1>=0) temp-=min(a[i-1][j],a[i][j]);
            if(j-1>=0) temp-=min(a[i][j-1],a[i][j]);
            if(i+1<n) temp-=min(a[i+1][j],a[i][j]);
            if(j+1<m) temp-=min(a[i][j+1],a[i][j]);
            sum_res+=temp;
        }
    }
    cout<<sum_res;
    return 0;
}

#360公司##笔试题目##提前批#
全部评论
在leetcode,加上正方体高度为0的情况可以AC class Solution { public:     int surfaceArea(vector<vector<int>>& a) {         int n=a.size();         int m=a[0].size();         int sum_res = 0;         for(int i=0;i<n;i++){             for(int j=0;j<m;j++){                 int temp;                 if(a[i][j]==0) continue;                 else if(a[i][j]==1) temp=6;                 else if(a[i][j]==2) temp=10;                 else temp= 4*(a[i][j]-2)+5*2;                 if(i-1>=0) temp-=min(a[i-1][j],a[i][j]);                 if(j-1>=0) temp-=min(a[i][j-1],a[i][j]);                 if(i+1<n) temp-=min(a[i+1][j],a[i][j]);                 if(j+1<m) temp-=min(a[i][j+1],a[i][j]);                 sum_res+=temp;             }         }        return sum_res;     } };
点赞 回复 分享
发布于 2019-08-16 10:38

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务