2021-08-07 奇安信笔试题

编程题

第一题(跳过)

 三层for 暴力可过

编程题2

import java.util.*;


public class Solution2 {

  /**
   * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
   *
   * @param grid int整型二维数组 为n*m 的二维数组
   * @return int整型
   */
  int res = 0;
  int tmp = 0;

  public int getMaximumResource(int[][] grid) {
    // write code here
    if (grid.length == 0 || grid[0].length == 0) {
      return 0;
    }
    int m = grid.length, n = grid[0].length;
    for (int i = 0; i < m; i++) {
      for (int j = 0; j < n; j++) {
        if (grid[i][j] == 0) {
          continue;
        }
        boolean[][] visit = new boolean[m][n];
        dfs(grid, i, j, visit);
      }
    }
    return res;
  }

  private void dfs(int[][] grid, int i, int j, boolean[][] visit) {
    if (i < 0 || j < 0 || i >= grid.length || j >= grid[0].length || grid[i][j] == 0 || visit[i][j]) {
      res = Math.max(res, tmp);
      return;
    }

    visit[i][j] = true;
    tmp += grid[i][j];
    // right
    dfs(grid, i, j + 1, visit);
    // bottom
    dfs(grid, i + 1, j, visit);
    // left
    dfs(grid, i, j - 1, visit);
    // top
    dfs(grid, i - 1, j, visit);
    tmp -= grid[i][j];
    visit[i][j] = false;
  }
}
#奇安信##笔经#
全部评论
点赞 回复 分享
发布于 2021-08-07 21:47

相关推荐

如题,他是要劝退我了吗
椛鸣:根据你的时间 来给你安排任务 如果你时间长 可能会参与到一些长期的项目 时间短 那就只能做点零工
点赞 评论 收藏
分享
06-06 03:40
已编辑
电子科技大学 Java
在秋招的小白菜很想养修勾:一眼 苍穹外卖+谷粒商城,项目换一换吧,可以找一些付费知识星球博主带带,避免烂大街。多投投大厂,背背八股,你这学历乱杀了,等实习经验到位,到时候大厂闭眼选
投递美团等公司8个岗位
点赞 评论 收藏
分享
评论
3
5
分享

创作者周榜

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