zoukankan      html  css  js  c++  java
  • Leetcode-5215 Path with Maximum Gold(黄金矿工)

     1 typedef long long ll;
     2 typedef pair<int,int> P;
     3 #define _for(i,a,b) for(register int i = (a);i < b;i ++)
     4 #define _rep(i,a,b) for(register int i = (a);i > b;i --)
     5 #define INF 0x3f3f3f3f
     6 #define MOD 100000000
     7 #define maxn 10003
     8 
     9 const int dx[] = {1,-1,0,0};
    10 const int dy[] = {0,0,1,-1};
    11 class Solution
    12 {
    13     public:
    14         
    15         int vis[100][100];
    16         vector<vector<int>> v;
    17         int ans = 0;
    18         bool valid(int x,int y)
    19         {
    20             return x>=0 && x<v.size() && y>=0 && y<v[0].size();
    21         }
    22         void dfs(int x,int y,int get)
    23         {
    24             ans = max(ans,get);
    25             _for(i,0,4)
    26             {
    27                 int nx = x+dx[i];
    28                 int ny = y+dy[i];
    29                 if(valid(nx,ny) && !vis[nx][ny] && v[nx][ny])
    30                 {
    31                     vis[nx][ny] = 1;
    32                     dfs(nx,ny,get+v[nx][ny]);
    33                     vis[nx][ny] = 0;
    34                 }
    35             }
    36         }
    37         int getMaximumGold(vector<vector<int>>& grid)
    38         {
    39             v = grid;
    40             _for(i,0,grid.size())
    41                 _for(j,0,grid[i].size())
    42                     if(v[i][j])
    43                     {
    44                         memset(vis,0,sizeof(vis));
    45                         vis[i][j] = 1;
    46                         dfs(i,j,v[i][j]);
    47                     }
    48             return ans;
    49         }
    50 };
  • 相关阅读:
    Java实现2048小游戏
    归并排序【代码】
    插入排序【代码】
    选择排序【代码】
    考试系统
    九九乘法表
    万年历
    猜数游戏
    C++知识点(杂)
    Core Data ,inverse
  • 原文地址:https://www.cnblogs.com/Asurudo/p/11627161.html
Copyright © 2011-2022 走看看