首页 > 代码库 > 第十七周 Leetcode 403. Frog Jump(HARD) 线性dp
第十七周 Leetcode 403. Frog Jump(HARD) 线性dp
leetcode403
我们维护青蛙从某个石头上可以跳那些长度的距离即可 用平衡树维护。
总的复杂度O(n^2logn)
class Solution { public: bool canCross(vector<int>& stones) { map<int,int>po; int n=stones.size(); map<int,int>dis[1500]; for(int i=0;i<stones.size();i++) po[stones[i]]=i; dis[0][1]=1; if(stones[1]!=stones[0]+1)return false; dis[1][1]=dis[1][2]=1; for(int i=1;i<stones.size();i++) { dis[i-1].clear(); map<int,int>::iterator it; for(it=dis[i].begin();it!=dis[i].end();it++) { if(it->first<=0)continue; int np=stones[i]+it->first; if(po.count(np)) { if(it->first>1)dis[po[np]][it->first-1]=1; dis[po[np]][it->first]=1; if(it->first<=n)dis[po[np]][it->first+1]=1; } } } if(dis[n-1].size()>0)return true; else return false; } };
第十七周 Leetcode 403. Frog Jump(HARD) 线性dp
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。