Leetcode-403 Frog Jump(青蛙过河)

Posted Asurudo Jyo の 倉 庫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode-403 Frog Jump(青蛙过河)相关的知识,希望对你有一定的参考价值。

 1 #define pb push_back
 2 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
 3 class Solution
 4 {
 5     public:
 6         bool canCross(vector<int>& stones)
 7         {
 8             int sz = stones.size();
 9             if(sz==2&&stones[1]==1) return true;
10 
11             vector<set<int>> dp(sz);
12             dp[0].insert(0);
13             for(int i = 1; i < sz; i ++)
14             {
15                 int szz = dp[i-1].size();
16                 cout << szz << endl;
17                 for(auto j = dp[i-1].begin(); j != dp[i-1].end(); j ++)
18                 {
19                     if(binary_search(stones.begin(),stones.end(),stones[i-1]+*j))
20                         dp[lower_bound(stones.begin(),stones.end(),stones[i-1]+*j)-stones.begin()].insert(*j);
21                     if(binary_search(stones.begin(),stones.end(),stones[i-1]+*j+1))
22                         dp[lower_bound(stones.begin(),stones.end(),stones[i-1]+*j+1)-stones.begin()].insert(*j+1);
23                     if(*j!=1&&binary_search(stones.begin(),stones.end(),stones[i-1]+*j-1))
24                         dp[lower_bound(stones.begin(),stones.end(),stones[i-1]+*j-1)-stones.begin()].insert(*j-1);
25                 }
26             }
27             if(dp[sz-1].empty())
28                 return false;
29             return true;
30         }
31 };

 

以上是关于Leetcode-403 Frog Jump(青蛙过河)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode-403 Frog Jump(青蛙过河)

第十七周 Leetcode 403. Frog Jump(HARD) 线性dp

LeetCode403. Frog Jump

每日一题LeetCode 403 青蛙过河 dp 哈希

[LeetCode] Frog Jump 青蛙过河

403 Frog Jump 青蛙过河