leetcode--55--跳跃游戏

题目:
给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个位置。

示例 1:

输入: [2,3,1,1,4]
输出: true
解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。
示例 2:

输入: [3,2,1,0,4]
输出: false
解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。

链接:https://leetcode-cn.com/problems/jump-game

思路:
1、构建一个list来存储每一个索引位置最远能走到的位置
2、遍历nums,如果元素的索引位置比当前最长能走到的位置远,说明这个索引位置就已经到达不了了

Python代码:

class Solution(object):
    def canJump(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        if not nums:
            return true
        ls = []
        for index,num in enumerate(nums):
            ls.append(index+num)
        size = len(nums)

        longest = 0
        for index in range(size):
            if longest>=size-1:
                break
            if index>longest:
                break
            longest = max(longest, ls[index])
    
        return longest>=size-1

C++代码:

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int size = nums.size();
        if(size==0){
            return true;
        }
        vector<int> ls;
        for (int i=0; i<size; i++){
            ls.push_back(i+nums[i]);
        }

        int longest = 0;
        for (int j=0; j<size; j++){
            if (longest>=size-1){
                return true;
            }
            if(j > longest){
                break;
            }
            longest = max(longest, ls[j]);
        }

        return longest>=size-1;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大...
    萨缪阅读 1,738评论 0 0
  • 关注公众号《长歌大腿》,发送“机器学习”关键字,可获取包含机器学习(包含深度学习),统计概率,优化算法等系列文本与...
    伊凡vnir阅读 3,688评论 0 0
  • 题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 ...
    河海中最菜阅读 1,400评论 0 0
  • 转自官方题解 定义 如果我们可以从数组中的某个位置跳到最后的位置,就称这个位置是“==好坐标==”,否则称为“==...
    vuhe阅读 2,972评论 0 0
  • serversocket 建立的是socket的服务端, socket建立的是客户端。
    夏6阅读 1,814评论 0 0

友情链接更多精彩内容