机器人走方格二---(有障碍的方格)

来源:互联网 发布:银河证券股票交易软件 编辑:程序博客网 时间:2024/04/27 23:51

这里写图片描述

思路分析:

还是动态规划,不过需要同时判断map数组的状态,然后依照状态进行不同的操作。

import java.util.*;public class Robot {    public int countWays(int[][] map, int x, int y) {        // write code here        int[][] res = new int[x][y];        res[0][0] = 0;        if(map[0][0]==0)//这里要注意,起点有障碍,那么直接返回0            return 0;        boolean flag = true;//标志位,用来标识前方是否有障碍        for(int i = 1;i<x;i++){            if(map[i][0]==0){                flag = false;//有障碍则进行标识            }            if(flag){//依照障碍进行不同的操作                res[i][0] = 1;            }else{                res[i][0] = 0;            }        }        flag = true;        for(int i = 1;i<y;i++){            if(map[0][i]==0){                flag = false;            }            if(flag){                res[0][i] = 1;            }else{                res[0][i] = 0;            }        }        for(int i = 1;i<x;i++){            for(int j = 1;j<y;j++){                if(map[i][j]==1){                res[i][j] = (res[i-1][j]+res[i][j-1])%1000000007;                }else{                    res[i][j] = 0;                }            }        }        return res[x-1][y-1];    }}
0 0
原创粉丝点击