package DynamicProgramming;/** this is an important Algo in which* we have starting and ending of board and we have to reach* we have to count no. of ways* that help to reach end point i.e number by rolling dice* which have 1 to 6 digitsTest Case:here target is 10int n=10;startAlgo();System.out.println(bpR(0,n));System.out.println(endAlgo()+"ms");int[] strg=new int [n+1];startAlgo();System.out.println(bpRS(0,n,strg));System.out.println(endAlgo()+"ms");startAlgo();System.out.println(bpIS(0,n,strg));System.out.println(endAlgo()+"ms");*/public class BoardPath {public static long startTime;public static long endTime;public static void startAlgo() {startTime=System.currentTimeMillis();}public static long endAlgo() {endTime=System.currentTimeMillis();return endTime-startTime;}public static int bpR(int start,int end){if(start==end) {return 1;}else if(start>end)return 0;int count=0;for(int dice=1;dice<=6;dice++) {count+=bpR(start+dice,end);}return count;}public static int bpRS(int curr,int end,int strg[]){if(curr==end) {return 1;}else if(curr>end)return 0;if(strg[curr]!=0)return strg[curr];int count=0;for(int dice=1;dice<=6;dice++) {count+=bpRS(curr+dice,end,strg);}strg[curr]=count;return count;}public static int bpIS(int curr,int end,int[]strg){strg[end]=1;for(int i=end-1;i>=0;i--) {int count=0;for(int dice=1;dice<=6&&dice+i<strg.length;dice++) {count+=strg[i+dice];}strg[i]=count;}return strg[0];}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。