袋鼠过河python
2019独角兽企业重金招聘Python工程师标准>>>
一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧, 袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米, 如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了, 给定每个弹簧的力量,求袋鼠最少需要多少跳能够到达对岸。如果无法到达输出-1 输入描述: 输入分两行,第一行是数组长度N (1 ≤ N ≤ 10000),第二行是每一项的值,用空格分隔。 输出描述: 输出最少的跳数,无法到达输出-1 示例1 输入 5 2 0 1 1 1 输出 4
#递归方法
lens=int(input())
lists=list(map(int,input().split()))
ind_get={}
for i in range(1,lens+1):ind_get[i]=list(range(i+1,i+lists[i-1]+1))
def get_min(ind_get,ind):get_list=[]if ind==1:return 1for k, v in ind_get.items():if k < ind and ind in v:get_list.append(get_min(ind_get, k))min_num=min(get_list)return min_num+1
res=get_min(ind_get,lens)
print(res)
#动态规划
lens=int(input())
lists=list(map(int,input().split()))
dp=[i for i in range(lens+1)]
for i in range(lens+1):if i ==0:continueflag=Falsefor j in range(i):if j+lists[j] >= i:dp[i]=min(dp[i],dp[j]+1)flag=Trueif flag==False:break
if flag==True:print(dp[lens])
else:print("-1")
转载于:https://my.oschina.net/u/3726752/blog/1790590
袋鼠过河python相关推荐
- 袋鼠过河(动态规划)
题目描述 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远.每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为 ...
- 头歌-EduCoder:袋鼠过河问题
头歌-EduCoder:袋鼠过河问题 任务描述 题目描述 编程要求 测试说明 代码实现 任务描述 本关任务:编写一个袋鼠过河问题的小程序. 题目描述 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打 ...
- educoder算法设计与分析 实验一扩展 袋鼠过河问题
实验五 回溯法扩展1 第1关:袋鼠过河问题 第1关:袋鼠过河问题 题目描述: 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩,每隔一米就有一个,每个桩上面有一个弹簧,袋鼠跳到弹簧上就可以跳 ...
- 【算法】袋鼠过河,动态规划问题(C++源码)
[算法]袋鼠过河,动态规划问题(C++源码) 一.问题描述 二.输入描述 三. 输出描述 四.输入样例 五.输出样例 六.步骤描述 七.运行结果截图 八.源代码(C++) 一.问题描述 一只袋鼠要从河 ...
- 动态规划之袋鼠过河问题
题目:一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远,每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5, ...
- 袋鼠过河问题(Java)
从牛客网上看到的这道题:题目如下: 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远.每个弹簧力量不同,用一个数字代 ...
- 袋鼠过河问题(DP)
首先应当指出,这道题的问题描述不清晰.描述中说到:河中间打了很多桩子,每隔一米就有一个,河流一共n米宽,袋鼠初始在第一个弹簧上面,若跳到最后一个弹簧就算过河了. 结合题目中给出的样例,疑点有以下两个: ...
- test题目:袋鼠过河
一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远.每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表 ...
- c++编程题 袋鼠过河
题目描述 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远.每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为 ...
最新文章
- sql的使用详解(针对oeacle)之select(上)
- Docker架构、镜像及容器的安装和基本操作
- .net平台的rabbitmq使用封装
- java url api_深入阅读java api之URL
- C++STL- 函数对象
- Java的if判断对象为null时,null放在比较运算符的左边还是右边较好?
- Jmeter提取响应结果中的json数据
- C++并发编程实战---阅读笔记
- ST-LINK USB communication error解决方法
- java vector实现的接口_java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
- 数据库SQL(介绍)
- 关于Excel导入SqlServer报错的解决
- 5g理论速度_5G手机用4G套餐速度达300M每秒,其原因令人费解,西瓜视频聊科技...
- cad编辑节点快捷键是什么_CAD常用的快捷键命令
- 2.2 zio入门——按顺序组合ZIO
- 程序异常终止:Process finished with exit code -1073741819 (0xC0000005)
- 常见的数据结构面试题
- 各类积分对称性详细总结
- 水经注能否将dwg转出为shp?
- MyBatis与Spring整合