zoukankan      html  css  js  c++  java
  • LeetCode 1293. Shortest Path in a Grid with Obstacles Elimination

    题目

    非常简单的BFS 暴搜

    struct Node
    {
        int x;
        int y;
        int k;
        int ans;
        
        Node(){}
        Node(int x,int y,int k,int ans)
        {
            this->x=x;
            this->y=y;
            this->k=k;
            this->ans=ans;
        }
    };
    class Solution {
    public:
        int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}};
        int vis[105][105];
        int vis2[105][105];
        int n,m;
        vector<vector<int>> map;
        queue<Node> q;
        int shortestPath(vector<vector<int>>& grid, int k) {
            
            n = grid.size();
            m = grid[0].size();
            memset(vis,-1,sizeof(vis));
            
            q.push(Node(0,0,k,0));
            
            int ans = -1;
            
            while(!q.empty())
            {
                
                Node term = q.front();
                
                q.pop();
                
                if(term.x == n-1 && term.y==m-1)
                {
                    return term.ans;
                }
                
                for(int i=0;i<4;i++)
                {
                    int xx = term.x +dir[i][0];
                    int yy = term.y +dir[i][1];
                
                    if(xx < 0 || yy < 0 || xx >= n || yy >=m)
                        continue;
                            
                    if(vis[xx][yy]!=-1&&vis[xx][yy]>=term.k)
                        continue;
    
                    if(grid[xx][yy]==1)
                    {
                        if(term.k>0)
                        {
                            vis[xx][yy]=term.k-1;
        
                            q.push(Node(xx,yy,term.k-1,term.ans+1));
                        }
                    }
                    else
                    {
                        vis[xx][yy]=term.k;
      
                        q.push(Node(xx,yy,term.k,term.ans+1));
                    }
    
                }
            }
            
            return -1;
            
            
        }
        
        
        
    };
    
  • 相关阅读:
    [JZOJ 5788] 餐馆
    [JZOJ 5778] 没有硝烟的战争
    problems_scala
    好迷茫,好迷茫啊
    公布下我的数据库操作层
    关于数据库大并发量(未完成)
    关于http协议头
    管理心得体会
    数据库表分区
    公共的Json操作类
  • 原文地址:https://www.cnblogs.com/dacc123/p/12049729.html
Copyright © 2011-2022 走看看