机器人走路问题优化解法

public class Test53 {//假设有N个位置,记为1-N,N大于或等于2//开始机器人在M位置上(M为1-N中的一个)//如果机器人来到1位置,那么下一步只能向右来到2位置//如果机器人来到N位置,那么下一步只能向左来到N-1的位置//如果机器人在中间,那么既可以往左也可以往右//规定机器人走K步,最终来到P位置的方法有多少种//给N,M,K,P,返回数量public static int ways2(int N, int M, int K, int P) {if (N < 2 || K < 1 || M < 1 || M > N || P < 1 || P > N) {return 0;}int[][] dp = new int[N+1][K+1];for (int row = 0; row <= N; row++) {for (int col = 0; col <= K; col++) {dp[row][col] = -1;}}return walk(N, M, K, P, dp);}public static int walk(int N, int cur, int rest, int P, int[][] dp) {if (dp[cur][rest] != -1) {return dp[cur][rest];}if (rest == 0) {dp[cur][rest] = cur == P ? 1 : 0;return dp[cur][rest];}if (cur == 1) {dp[cur][rest] = walk(N, 2 ,rest - 1, P, dp);return dp[cur][rest];}if (cur == N) {dp[cur][rest] = walk(N, N - 1, rest - 1, P, dp);return dp[cur][rest];}dp[cur][rest] = walk(N, cur + 1, rest - 1, P, dp) + walk(N, cur - 1, rest - 1, P, dp);return dp[cur][rest];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/877654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring 中XmlWebApplicationContext

XmlWebApplicationContext 是 Spring Framework 中的一个重要类&#xff0c;位于 org.springframework.web.context.support 包中。它是 AbstractRefreshableWebApplicationContext 的实现&#xff0c;用于在 Web 应用程序中从 XML 配置文件加载 Spring bean 定义。 主要功能 …

MIAOYUN与CStack签署总代协议,共拓一体化云端交互管理市场!

在深刻洞察国内云原生技术日新月异的发展态势&#xff0c;并秉持着共谋市场蓝海、深化战略协同的高度共识下&#xff0c;成都元来云志科技有限公司&#xff08;简称“MIAOYUN”&#xff09;与上海酷栈科技有限公司&#xff08;简称“CStack”&#xff09;于近期签署了总代理合作…

SpringBoot项目多线程实现定时任务-只需要三步

众所周知&#xff0c;项目中需要使用定时任务发布的需求时非常常见的&#xff0c;例如&#xff1a;数据同步&#xff0c;清理垃圾文件&#xff0c;清理过期用户等需求&#xff0c;可能需要我们定时去清理数据。 但是我们如果集成xxl-job&#xff0c;Quartz&#xff0c;spring …

Avalonia开发中的一些踩坑点

文章目录 一、数据绑定问题二、布局问题三、命令绑定问题四、主题和样式问题五、资源管理问题六、事件处理问题七、跨平台兼容性问题八、性能优化问题一、数据绑定问题 绑定路径错误: 可能导致数据无法正确显示或更新。 示例: public class ViewModel {public string Name …

类的构造函数与析构函数

构造函数与析构函数 构造函数 在C++中,类可以有几种不同类型的构造函数,每种都有其特定用途和语义。这些构造函数类型包括: 1.默认构造函数 无参数的构造函数,或者所有参数都有默认值的构造函数。如果类中没有显式定义任何构造函数,编译器将自动生成一个默认构造函数。…

【C语言小项目】五子棋游戏

目录 前言 一、游戏规则 1.功能分析 2.玩法分析 3.胜负判定条件 二、游戏实现思路 三、代码实现与函数封装 1.项目文件创建 2.头文件说明 3.函数封装 1&#xff09;菜单实现 2&#xff09;进度条实现 3&#xff09;main函数实现 4&#xff09;Game函数 5&#xff0…

【机器学习】小样本学习的实战技巧:如何在数据稀缺中取得突破

我的主页&#xff1a;2的n次方_ 在机器学习领域&#xff0c;充足的标注数据通常是构建高性能模型的基础。然而&#xff0c;在许多实际应用中&#xff0c;数据稀缺的问题普遍存在&#xff0c;如医疗影像分析、药物研发、少见语言处理等领域。小样本学习&#xff08;Few-Shot Le…

聚观早报 | 12306推出两项新功能;苹果音乐限时免费试用

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 8月22日消息 12306推出两项新功能 苹果音乐限时免费试用 iQOO 13将采用标志性灯带 Redmi K80 Pro渲染图曝光 vi…

认知水平:决定命运的关键因素

在人类社会的发展进程中,认知水平始终扮演着至关重要的角色。它犹如一把无形的标尺,衡量着人们的思维深度、决策能力以及人生走向。从无知的盲目自信到认知提升后的谦逊自省,从狭隘的单一思维到多元的灵活考量,认知水平的高低直接决定了一个人的行为方式和命运结果。 一、…

将前端上传的文件同步到sftp服务器

将前端上传的文件同步到sftp服务器 配置 <!--连接ssh--><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version> <!-- 检查最新版本 --></dependency> PostMapping(…

C#实现数据采集系统-多设备采集

系统功能升级-多设备采集 数据采集系统在网络环境下&#xff0c;性能足够&#xff0c;可以实现1对多采集&#xff0c;需要支持多个设备进行同时采集功能&#xff0c;现在就开发多设备采集功能 修改多设备配置 设备配置 将DeviceLink 改成List集合的DeviceLinks删掉Points&a…

二、什么是Vue中的响应式?Vue的响应式原理

什么是Vue中的响应式 Vue中的响应式&#xff0c;简而言之就是当数据发生变化时&#xff0c;页面跟随变化。使用过Vue的v-model都有比较深刻的感受&#xff0c;我们在代码中修改双向绑定的数据后&#xff0c;页面上的数据也会自动更新&#xff0c;页面跟随变化 我们看个例子&am…

Java ArrayList和LinkedList

ArrayList ArrayList是Java中最常用的数据结构之一&#xff0c;它是一个动态数组的实现&#xff0c;允许你在程序中存储和管理一个可变大小的对象列表&#xff0c;我们可以添加或删除元素。 ArrayList 继承了 AbstractList &#xff0c;并实现了 List 接口。 基本概念 Arra…

【Linux】ARM服务器命令行安装虚拟机

在Arm服务器上安装虚拟机操作笔记 一、基础环境准备1、环境准备2、检查KVM支持3、启动并启用libvirtd服务4、创建虚拟网络&#xff08;可选&#xff09;5、使用virt-manager创建虚拟机&#xff08;支持KVM&#xff09;6、管理虚拟机9、监控和日志 二、软虚拟化替代方案1、查看虚…

6. type *(0)的神奇之处

表达式 type * (0) 在 C/C 编程中是一个常见的技巧&#xff0c;通常用于内核编程和一些系统编程场景中。这种语法形式的主要作用是获取特定类型指针的虚拟地址 0&#xff0c;从而进行类型转换或执行其他计算。接下来我们会深入分析这个表达式的具体含义和应用。 1. 表达式的基…

GPT4o编写步进电机控制代码

我给出的要求如下&#xff1a; 基于STM32F407 HAL库&#xff0c;写一个步进电机控制程序&#xff0c;需要控制8个步进电机&#xff0c;我会给出描述步进电机的结构体变量&#xff0c;基于这些变量需要你做出以下功能&#xff0c;电机脉冲通过定时器中断翻转脉冲引脚的电平实现…

安科瑞电气防火在线保护器 ASCP210系列适用于汽车充电桩

安科瑞电气防火限流式保护器 传统保护方式采用电磁脱扣式断路器&#xff0c;检测到短路时&#xff0c;脱扣器动作&#xff0c;分断时间在毫米级&#xff0c;无法阻断短路电流。较好的方式是采用响应速度快的限流技术和器件。 电弧也有克星&#xff0c;可以微秒被扼杀在摇篮中&…

Vscode——如何实现 Ctrl+鼠标左键 跳转函数内部的方法

一、对于Python代码 安装python插件即可实现 二、对于C/C代码 安装C/C插件即可实现

【MySQL进阶之路】数据的查询

目录 建表 全列查询 指定列查询 查询表达式 指定别名 结果去重 WHERE 条件查询 模糊查询 结果排序 筛选分页结果 不同子句的执行顺序 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 建表 CREATE TABLE grades( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name …

视觉巡线小车(STM32+OpenMV)——技术总结

在现代机器人技术中&#xff0c;视觉巡线是一种常见的导航方式&#xff0c;它允许机器人通过识别和跟踪地面上的线路来自主导航。本文将总结使用STM32微控制器和OpenMV视觉模块来实现视觉巡线小车的关键技术和步骤。 引言 视觉巡线小车是一种基于视觉识别技术的智能机器人&am…