Python每日一练(20230512) 跳跃游戏 V\VI\VII

简介: Python每日一练(20230512) 跳跃游戏 V\VI\VII

1. 跳跃游戏 V


给你一个整数数组 arr 和一个整数 d 。每一步你可以从下标 i 跳到:


   i + x ,其中 i + x < arr.length 且 0 < x <= d 。

   i - x ,其中 i - x >= 0 且 0 < x <= d 。


除此以外,你从下标 i 跳到下标 j 需要满足:arr[i] > arr[j] 且 arr[i] > arr[k] ,其中下标 k 是所有 i 到 j 之间的数字(更正式的,min(i, j) < k < max(i, j))。


你可以选择数组的任意下标开始跳跃。请你返回你 最多 可以访问多少个下标。


请注意,任何时刻你都不能跳到数组的外面。


示例 1:


601abe0e3134c88bdb7e4b50c3bb8537.jpeg



输入:arr = [6,4,14,6,8,13,9,7,10,6,12], d = 2


输出:4


解释:你可以从下标 10 出发,然后如上图依次经过 10 --> 8 --> 6 --> 7 。


注意,如果你从下标 6 开始,你只能跳到下标 7 处。你不能跳到下标 5 处因为 13 > 9 。你也不能跳到下标 4 处,因为下标 5 在下标 4 和 6 之间且 13 > 9 。


类似的,你不能从下标 3 处跳到下标 2 或者下标 1 处。


示例 2:

输入:arr = [3,3,3,3,3], d = 3

输出:1

解释:你可以从任意下标处开始且你永远无法跳到任何其他坐标。


示例 3:

输入:arr = [7,6,5,4,3,2,1], d = 1

输出:7

解释:从下标 0 处开始,你可以按照数值从大到小,访问所有的下标。


示例 4:

输入:arr = [7,1,7,1,7,1], d = 2

输出:2


示例 5:

输入:arr = [66], d = 1

输出:1


提示:

   1 <= arr.length <= 1000

   1 <= arr[i] <= 10^5

   1 <= d <= arr.length  


代码:

python

输出:


2. 跳跃游戏 VI


给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。


一开始你在下标 0 处。每一步,你最多可以往前跳 k 步,但你不能跳出数组的边界。也就是说,你可以从下标 i 跳到 [i + 1, min(n - 1, i + k)] 包含 两个端点的任意位置。


你的目标是到达数组最后一个位置(下标为 n - 1 ),你的 得分 为经过的所有数字之和。


请你返回你能得到的 最大得分 。


示例 1:

输入:nums = [1,-1,-2,4,-7,3], k = 2

输出:7

解释:你可以选择子序列 [1,-1,4,3] (上面加粗的数字),和为 7 。


示例 2:

输入:nums = [10,-5,-2,4,0,3], k = 3

输出:17

解释:你可以选择子序列 [10,4,3] (上面加粗数字),和为 17 。


示例 3:

输入:nums = [1,-5,-20,4,-1,3,-6,-3], k = 2

输出:0


提示:

    1 <= nums.length, k <= 10^5

   -10^4 <= nums[i] <= 10^4


代码:

python

输出:


3. 跳跃游戏 VII


给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump 。一开始,你在下标 0 处,且该位置的值一定为 '0' 。当同时满足如下条件时,你可以从下标 i 移动到下标 j 处:


   i + minJump <= j <= min(i + maxJump, s.length - 1) 且

   s[j] == '0'.


如果你可以到达 s 的下标 s.length - 1 处,请你返回 true ,否则返回 false 。


示例 1:

输入:s = "011010", minJump = 2, maxJump = 3

输出:true


解释:

第一步,从下标 0 移动到下标 3 。

第二步,从下标 3 移动到下标 5 。


示例 2:

输入:s = "01101110", minJump = 2, maxJump = 3

输出:false


提示:

   2 <= s.length <= 10^5

   s[i] 要么是 '0' ,要么是 '1'

   s[0] == '0'

   1 <= minJump <= maxJump < s.length


代码:

python

输出:





目录
相关文章
|
1天前
|
存储 程序员 C#
100行python代码,轻松完成贪吃蛇小游戏_c#游戏100行代码
100行python代码,轻松完成贪吃蛇小游戏_c#游戏100行代码
|
1天前
|
程序员 C# Python
100行python代码,轻松完成贪吃蛇小游戏_c#游戏100行代码(2)
100行python代码,轻松完成贪吃蛇小游戏_c#游戏100行代码(2)
|
3天前
|
机器学习/深度学习 人工智能 算法
【Python 机器学习专栏】强化学习在游戏 AI 中的实践
【4月更文挑战第30天】强化学习在游戏AI中展现巨大潜力,通过与环境交互和奖励信号学习最优策略。适应性强,能自主探索,挖掘出惊人策略。应用包括策略、动作和竞速游戏,如AlphaGo。Python是实现强化学习的常用工具。尽管面临训练时间长和环境复杂性等挑战,但未来强化学习将与其他技术融合,推动游戏AI发展,创造更智能的游戏体验。
|
3天前
|
存储 Python
Python 一步一步教你用pyglet制作“彩色方块连连看”游戏
Python 一步一步教你用pyglet制作“彩色方块连连看”游戏
39 0
|
3天前
|
存储 Python
如何使用Python实现“猜数字”游戏
本文介绍了使用Python实现“猜数字”游戏的过程。游戏规则是玩家在给定范围内猜一个由计算机随机生成的整数,猜对则获胜。代码中,首先导入random模块生成随机数,然后在循环中获取玩家输入并判断大小,提供猜小、猜大提示。通过增加猜测次数限制、难度选择、优化输入提示和图形化界面等方式可优化游戏。这篇文章旨在帮助初学者通过实际操作学习Python编程。
42 2
|
3天前
|
Python
用 Python 写一个猜数字游戏并运行它
用 Python 写一个猜数字游戏并运行它
15 0
|
3天前
|
IDE 开发工具 Python
用python写出一个猜数字游戏
用python写出一个猜数字游戏
34 4
|
3天前
|
人工智能 算法 Python
Python猜数字游戏:集成高级AI对手
Python猜数字游戏:集成高级AI对手
27 0
|
10月前
|
Python
Python实现猜数字游戏
Python实现猜数字游戏
95 0
|
12月前
|
Python
零基础Python教程034期 random随机数开发猜数字游戏
零基础Python教程034期 random随机数开发猜数字游戏
242 0