private static int solution(int[][] data, int n, int m) {         int res = 0;         //上下面固定         res += n * m * 2;         //第一层前后左右固定         //res += 8; 我tm把它写死了 没变成下面的         res += m * 2 + n * 2;         for (int i = 0; i <n ; i++) {             for (int j = 0; j <m ; j++) {                 int the_cur = data[i][j] - 1;//除去第一层当前位置的正方体个数                 int the_left_cur = j == 0 ? 0 : data[i][j-1] - 1;//除去第一层当前位置的左边正方体个数                 int the_right_cur = j == m-1 ? 0 : data[i][j+1] - 1;//除去第一层当前位置的左边正方体个数                 int the_up_cur = i == 0 ? 0 : data[i-1][j] - 1;//除去第一层当前位置的前边正方体个数                 int the_down_cur = i == n-1 ? 0 : data[i+1][j] - 1;//除去第一层当前位置的后边正方体个数                 //当前立方体前后左右增加的表面积                 int the_left_cur_cut = the_left_cur >= the_cur ? 0 : the_cur - the_left_cur;                 int the_right_cur_cut = the_right_cur >= the_cur ? 0 : the_cur - the_right_cur;                 int the_up_cur_cut = the_up_cur >= the_cur ? 0 : the_cur - the_up_cur;                 int the_down_cur_cut = the_down_cur >= the_cur ? 0 : the_cur - the_down_cur;                 int the_real_cur_area = the_left_cur_cut + the_right_cur_cut + the_up_cur_cut + the_down_cur_cut;                 res += the_real_cur_area;             }         }         return res;     }
点赞 评论

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
牛客网
牛客企业服务