我被困在任务上几天了。而且我什至无法开始编码,因为我什至不完全了解任务。因此,如果有人可以帮助我并指出正确的方向,我将不胜感激!
Image of text of the exercise,图像显示为:
Josefine和她的朋友发明了一款名为Pillar Jumpers的新游戏。在此游戏中,N个非递减高度的柱子彼此相邻放置。玩家从第一个支柱开始,目标是在最多J个跳跃中到达最后一个支柱。
玩家具有一定的跳跃力量S,该力量决定了他可以跳跃多远。令hi为i∈[1…N]的第i个支柱的高度 如果i
,则玩家可以从支柱i跳到j 考虑到支柱的高度和最大跳跃数J,确定所需的最小跳跃强度S,以便玩家仍然可以完成游戏。
输入格式:
Line 1: The integers N and J Line 2: The heights of the N pillars in a list
输出格式
Line 1: The minimum required strength S.
所以我的第一种方法是尝试考虑由不同高度的差异组成的数组,但是它不起作用:/
然后我尝试将原始高度列表分成J个子列表,然后计算每个子列表的第一个值与最后一个值之间的差,然后返回最小的一个,但它都不起作用:/ >
答案 0 :(得分:1)
我不确定您要解决的问题的哪一部分,但从本质上讲,该问题限制了玩家可以以相同的 S 跳多远和多高。我想到的第一件事是一个大概的解决方案。从某个较大的 S 值开始,您可以使用循环“模拟”问题,该循环找到满足跳跃极限的最远支柱j,转到该支柱,然后重复该循环。到达终点后,您将发现该特定 S 值所需的最小跳跃。该值可能小于给定输入 J ,因此您将以较小的跳跃强度 S 重复仿真,直到所需的最小跳跃达到 J 。此时,您的S应该非常接近正确的值。
答案 1 :(得分:0)
由于这是一项作业,因此我不会发布任何代码,但是由于您已经停留了几天,所以我将为您提供更多提示:
将其视为楼梯,步伐是如此之大,以至于我没有力量攀登它。
台阶的台阶比我的力量大吗?
我们必须爬楼梯的所有台阶,这是一个循环...
我们必须跟踪我正在走的台阶,这样我们才能知道自己在哪里。
我们必须跟踪我要爬到当前步的跳数。
在我跳跃时,如果
NUMBER_OF_STEPS < STRENGTH AND SUM(STEPS) < STRENGTH
,我应该转到下一个支柱。其中NUMBER_OF_STEPS
是此跳转中的步数,SUM(STEPS)
是我们离开的步与当前步之间的高度差。对 ?那是在您的作业中给出的,我只是改写了一下。