public class Test52 {
//假设有N个位置,记为1-N,N大于或等于2
//开始机器人在M位置上(M为1-N中的一个)
//如果机器人来到1位置,那么下一步只能向右来到2位置
//如果机器人来到N位置,那么下一步只能向左来到N-1的位置
//如果机器人在中间,那么既可以往左也可以往右
//规定机器人走K步,最终来到P位置的方法有多少种
//给N,M,K,P,返回数量
public static int ways1(int N, int M, int K, int P) {
if (N < 2 || K < 1 || M < 1 || M > N || P < 1 || P > N) {
return 0;
}
return walk(N, M, K, P);
}
public static int walk(int N, int cur, int rest, int P) {
if (rest == 0) {
return cur == P ? 1 : 0;
}
if (cur == 1) {
return walk(N, 2 ,rest - 1, P);
}
if (cur == N) {
return walk(N, N - 1, rest - 1, P);
}
return walk(N, cur + 1, rest - 1, P) + walk(N, cur - 1, rest - 1, P);
}
}
机器人走路的问题
听风客12024-08-23 8:28
相关推荐
云烟成雨TD13 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行小O的算法实验室13 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测于慨13 小时前
Lambda 表达式、方法引用(Method Reference)语法swg32132113 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务gelald14 小时前
SpringBoot - 自动配置原理殷紫川14 小时前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥一轮弯弯的明月14 小时前
贝尔数求集合划分方案总数chenjingming66614 小时前
jmeter线程组设置以及串行和并行设置殷紫川14 小时前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南eddieHoo14 小时前
查看 Tomcat 的堆内存参数