欢迎光临散文网 会员登陆 & 注册

刷题第十六天

2023-08-18 23:53 作者:叶荜莉  | 我要投稿

55. 跳跃游戏:

这题只要考虑在可允许跳跃的范围内,能跳的最远距离,如果最远距离大于等于终点,就返回true。设置一个index变量记录可允许跳跃的范围。

这题还可以考虑能不能跳过0,因为如果全部元素都大于0,那无论怎么跳,都是可以跳过去的。遍历数组,如果当前元素为0,那就循环向前遍历,如果nums[j]+j>i,说明找到可以跳过这个0的,如果没有找到说明这个0跳不过去,直接返回false。

45. 跳跃游戏 II:

在每一次能跳的范围内选择能跳最远的点作为下一次的起跳点。然后就可以开始写代码了。我发现模拟类的代码我是真不会写。

按照思路,写一个for循环,循环开始先cnt++,先看如果nums[i]+i是否大于等于n-1,如果是直接跳出循环,如果没有加这个的话,下面的会下标溢出,循环当前nums[i]能跳的范围,找到能跳最远的点作为下一次的起跳点。

1005. K 次取反后最大化的数组和:

要求最大和,那就是负数取反,正数不能取反,先排序,从最小的开始取反。如果k比负数个数大,那就k%=2,然后排序一下,取最小的数取反。





刷题第十六天的评论 (共 条)

分享到微博请遵守国家法律