博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(HW)uniquePath_2(障碍物)(Java)
阅读量:5926 次
发布时间:2019-06-19

本文共 2347 字,大约阅读时间需要 7 分钟。

1 public class test 2 { 3     public static void main(String[] args) 4     { 5         Scanner input = new Scanner(System.in); 6         int m = input.nextInt(); 7         int n = input.nextInt(); 8         int[][] aux = new int[][]{
{0,0,1,0,0,0,0},{0,0,0,0,1,0,0},{0,1,0,0,0,0,0}}; 9 //iterative10 System.out.println(uniquePath_2(m, n, aux));11 //recursive12 int i, j;13 for(j = 0; j < aux[0].length && aux[0][j] == 0; j++);14 int p = j;15 for(i = 0; i < aux.length && aux[i][0] == 0; i++);16 int q = i;17 int[][] dp = new int[m][n];18 //p: 第一行中障碍物的位置 q: 第一列中障碍物的位置(下标)19 System.out.println(uniquePath_2(m - 1, n - 1, aux, dp, p, q));20 } 21 22 //iterative23 public static int uniquePath_2(int m, int n, int[][] aux)24 {25 int[][] dp = new int[m][n];26 27 //第一行赋值28 for(int j = 1; j < aux[0].length && aux[0][j] != 1; j++)29 dp[0][j] = 1;30 //第一列赋值31 for(int i = 1; i < aux.length && aux[i][0] != 1; i++)32 dp[i][0] = 1;33 34 for(int i = 1; i < dp.length; i++)35 for(int j = 1; j < dp[0].length; j++)36 {37 if(aux[i][j] == 1)38 dp[i][j] = 0;39 else40 dp[i][j] = dp[i - 1][j] + dp[i][j - 1];41 }42 43 return dp[dp.length - 1][dp[0].length - 1];44 }45 46 public static int uniquePath_2(int m, int n, int[][] aux, int[][] dp, int p, int q)47 {48 //第一行49 if(m == 0)50 {51 if(n >= p)52 return 0;53 return 1;54 }55 //第一列56 if(n == 0)57 {58 if(m >= q)59 return 0;60 return 1;61 }62 63 if(aux[m][n] == 1)64 dp[m][n] = 0;65 else66 {67 if(dp[m][n - 1] == 0)68 dp[m][n - 1] = uniquePath_2(m, n - 1, aux, dp, p, q);69 if(dp[m - 1][n] == 0)70 dp[m - 1][n] = uniquePath_2(m - 1, n, aux, dp, p, q);71 dp[m][n] = dp[m][n - 1] + dp[m - 1][n];72 }73 74 return dp[m][n];75 }76 }

 

转载于:https://www.cnblogs.com/Huayra/p/10940069.html

你可能感兴趣的文章
精通Spring Boot ——第十七篇:Spring Security自定义登录逻辑
查看>>
线性代数---单位矩阵和逆矩阵
查看>>
ActiveMQ 的安装
查看>>
Ajax版SSM整合前的准备工作
查看>>
【整理】Python之JIT、Django、Greenlet和Stackless
查看>>
前端ps配置
查看>>
微信开发 资料收集
查看>>
《Spring Recipes》第四章笔记4:Defining Script Sources ...
查看>>
Oracle问题小记五:服务启动-索引-子查询-分页存储过程
查看>>
选择PHP与Python,可以考虑这三个问题
查看>>
【转】asp.net不用CrystalReportViewer 直接打印
查看>>
Shell下日期循環
查看>>
Extending A Linux Disk With LVM–Extending Root Par
查看>>
限制 HTTrack 直接 download 整個 website
查看>>
Quantum的GRE模式简介
查看>>
What Does SERIALIZABLE Really Mean?
查看>>
JAVA IO - File 常量属性
查看>>
Oracle创建悲观锁和乐观锁
查看>>
javascript 在 IE中出现 ERROR 尚未实现 错误
查看>>
WordPress 问题汇总
查看>>