拜访
来源:互联网 发布:sql注入漏洞测试工具 编辑:程序博客网 时间:2024/04/28 12:40
题目描述
现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。
给定一个地图map及它的长宽n和m,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表可以经过的地区,请返回方案数,保证一定存在合法路径。保证矩阵的长宽都小于等于10。
测试样例:[[0,1,0],[2,0,0]],2,3
返回:2
class Visit {public: int countPath(vector<vector<int> > map, int n, int m) { // write code here vector<int> vec; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(map[i][j]==1 || map[i][j]==2){ vec.push_back(i); vec.push_back(j); } } } int x1=vec[0]; int y1=vec[1]; int x2=vec[2]; int y2=vec[3]; vector<vector<int>> dp(n,vector<int>(m,0)); if(y1<=y2){ for(int i=y1;i<=y2 && map[x1][i]!=-1;i++){ dp[x1][i]=1; } for(int i=x1;i<=x2 && map[i][y1]!=-1;i++){ dp[i][y1]=1; } for(int i=x1+1;i<=x2;i++){ for(int j=y1+1;j<=y2;j++){ if(map[i][j]!=-1){ dp[i][j]=dp[i-1][j]+dp[i][j-1]; } } } } else{ for(int i=x1;i<=x2 && map[i][y1]!=-1;i++){ dp[i][y1]=1; } for(int i=y1;i>=y2 && map[x2][i]!=-1;i--){ dp[x2][i]=1; } for(int i=x1+1;i<=x2;i++){ for(int j=y1-1;j>=y2;j--){ if(map[i][j]!=-1){ dp[i][j]=dp[i-1][j]+dp[i][j+1]; } } } } return dp[x2][y2]; }};
现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。
给定一个地图map及它的长宽n和m,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表可以经过的地区,请返回方案数,保证一定存在合法路径。保证矩阵的长宽都小于等于10。
测试样例:
[[0,1,0],[2,0,0]],2,3
返回:2
阅读全文
0 0
- 拜访
- 拜访
- 拜访
- 拜访
- 拜访
- 拜访
- 再次拜访
- 拜访李嘉诚
- 客户拜访
- 牛客 拜访
- 陌生拜访之道
- 专业销售拜访技巧
- 初次拜访客户礼仪
- 这样去做市场拜访
- 拜访客户“十问歌”
- 拜访杜洪超有感
- 拜访各位高手
- 拜访谭浩强老先生
- ajax async 使用
- 解决RTMP推送时间戳问题引起HLS切片不均匀导致手机浏览器播放卡顿的问题
- 云笔记项目 Unit08
- Appium 自动化模拟点击等操作,移动端没有相应效果
- 排名前1%的学生,是靠天赋还是努力?其实都不是……
- 拜访
- STL向导阅读③----容器.
- java进阶之路
- Android开发之如何获取Android手机屏幕的大小(分辨率、密度)
- Go语言基础:make,new, len, cap, append, delete方法
- openstack运维排故参考流程
- webrtc Android端本地渲染
- [FUNC]数组反向输出
- JS浮点数计算BUG