zoukankan      html  css  js  c++  java
  • Leetcode 45 跳跃游戏 贪心

    题目描述:

     题解:一开始的时候想到用的是dp,但是dp的复杂为O(n^2),超时了。仔细想想发现是一道贪心的题目,贪心地选择可达距离最大的位置作为每次跳跃的落点。具体描述见代码:

    AC代码:

       int jump(vector<int>& nums) {
            int Len = nums.size();
            int ans = 0;
            
            if(Len == 1) return 0;
    
            for(int i=0;i<Len;)
            {
                int e = i + nums[i];
                int mx = -1;
                
                if(e >= Len-1)
                {
                    ans++;
                    return ans;
                }
                int pos;
                
                for(int j=i+1;j<=e;j++) 
                {
                // 选择下次跳远能跳最远的位置
                    if(mx < j+nums[j])
                    {
                        mx = j+nums[j];
                        pos = j;
                    }
                }
                i = pos;
                ans++;
            }
    
            return ans;
        }    
  • 相关阅读:
    open jdk
    llvm 编译
    llvm Array Bounds Check Elimination
    tmux 共享窗口大小
    llvm pass
    llvm code call graph
    llvm -O 经历过那些pass
    tcmalloc asan
    web ide
    eclipse配置
  • 原文地址:https://www.cnblogs.com/z1141000271/p/12158261.html
Copyright © 2011-2022 走看看