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相关推荐

  1. 袋鼠过河(动态规划)

    题目描述 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远.每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为 ...

  2. 头歌-EduCoder:袋鼠过河问题

    头歌-EduCoder:袋鼠过河问题 任务描述 题目描述 编程要求 测试说明 代码实现 任务描述 本关任务:编写一个袋鼠过河问题的小程序. 题目描述 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打 ...

  3. educoder算法设计与分析 实验一扩展 袋鼠过河问题

    实验五 回溯法扩展1 第1关:袋鼠过河问题 第1关:袋鼠过河问题 题目描述: 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩,每隔一米就有一个,每个桩上面有一个弹簧,袋鼠跳到弹簧上就可以跳 ...

  4. 【算法】袋鼠过河,动态规划问题(C++源码)

    [算法]袋鼠过河,动态规划问题(C++源码) 一.问题描述 二.输入描述 三. 输出描述 四.输入样例 五.输出样例 六.步骤描述 七.运行结果截图 八.源代码(C++) 一.问题描述 一只袋鼠要从河 ...

  5. 动态规划之袋鼠过河问题

    题目:一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远,每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5, ...

  6. 袋鼠过河问题(Java)

    从牛客网上看到的这道题:题目如下: 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远.每个弹簧力量不同,用一个数字代 ...

  7. 袋鼠过河问题(DP)

    首先应当指出,这道题的问题描述不清晰.描述中说到:河中间打了很多桩子,每隔一米就有一个,河流一共n米宽,袋鼠初始在第一个弹簧上面,若跳到最后一个弹簧就算过河了. 结合题目中给出的样例,疑点有以下两个: ...

  8. test题目:袋鼠过河

    一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远.每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表 ...

  9. c++编程题 袋鼠过河

    题目描述 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远.每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为 ...

最新文章

  1. sql的使用详解(针对oeacle)之select(上)
  2. Docker架构、镜像及容器的安装和基本操作
  3. .net平台的rabbitmq使用封装
  4. java url api_深入阅读java api之URL
  5. C++STL- 函数对象
  6. Java的if判断对象为null时,null放在比较运算符的左边还是右边较好?
  7. Jmeter提取响应结果中的json数据
  8. C++并发编程实战---阅读笔记
  9. ST-LINK USB communication error解决方法
  10. java vector实现的接口_java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
  11. 数据库SQL(介绍)
  12. 关于Excel导入SqlServer报错的解决
  13. 5g理论速度_5G手机用4G套餐速度达300M每秒,其原因令人费解,西瓜视频聊科技...
  14. cad编辑节点快捷键是什么_CAD常用的快捷键命令
  15. 2.2 zio入门——按顺序组合ZIO
  16. 程序异常终止:Process finished with exit code -1073741819 (0xC0000005)
  17. 常见的数据结构面试题
  18. 各类积分对称性详细总结
  19. 水经注能否将dwg转出为shp?
  20. MyBatis与Spring整合

热门文章

  1. 大型系统存储层迁移实践
  2. 分享一个统计 Android 模块构建时长的脚本工具
  3. 这些好看的皮肤,这不嗖的一下,统统都到电脑里了~
  4. jscese 知其白 守其黑 為天下式 __Read The Fucking Source Code的博客汇总
  5. 分布式任务调度框架和微服务的区别
  6. P1717 Finger guessing
  7. 2022《中国企业敏捷实践白皮书》调研全面启动
  8. 剧场版复活的f 剧情
  9. 【软件应用】word数学公式插件mathtype安装
  10. 操作系统实验八:页面置换模拟程序设计