zoukankan      html  css  js  c++  java
  • 30 Day Challenge Day 11 | Leetcode 55. Jump Game

    题解

    入门级的动态规划题。

    class Solution {
    public:
        bool canJump(vector<int>& nums) {
            // dp[i] = dp[i-1]
            vector<int> dp(nums.size(), false);
            
            dp[0] = true;
            
            for(int i = 1; i < nums.size(); i++) {
                for(int j = 0; j < i; j++) {
                    if(dp[j] && nums[j] >= i-j) {
                        dp[i] = true;
                        break;
                    }
                }
            }
            
            return dp[nums.size()-1];
        }
    };
    

    可以进一步优化,用一个变量代替数组。

    runtime可以从1488ms优化到20ms。

    class Solution {
    public:
        bool canJump(vector<int>& nums) {
            int max_jump = 0;
            for(int i = 0; i < nums.size(); i++) {
                if(max_jump < i) return false;
                max_jump = max(max_jump, i + nums[i]);
            }
            return true;
        }
    };
    
  • 相关阅读:
    CV
    Flutter 概览
    spaCy 基本使用
    图像读写、属性
    图像原理
    NLP 实战
    NLTK 相似性度量
    NLTK 停用词、罕见词
    NLTK 词干提取、词形还原
    NLTK 基本操作
  • 原文地址:https://www.cnblogs.com/casperwin/p/13698720.html
Copyright © 2011-2022 走看看