leetcode 403. 青蛙过河

题目:403. 青蛙过河 - 力扣(LeetCode)

O(n^2)水题

cpp 复制代码
class Solution {
public:
    bool canCross(vector<int>& stones) {
        int n = (int) stones.size();
        vector<vector<int>> f;
        f.resize(n);
        f[0].push_back(1);
        int64_t temp;
        for (int i = 0; i < n - 1; i++) {
            vector<int>& t = f[i];
            sort(t.begin(), t.end());
            int j = i + 1;
            for (int k = 0; k < t.size(); k++) {
                if (k > 0 && t[k] == t[k - 1]) {
                    continue;
                }
                temp = stones[i];
                temp += t[k];
                if (temp > stones[j]) {
                    while (j < n - 1 && temp >= stones[j + 1]) {
                        j++;
                    }
                }
                if (stones[i] + t[k] == stones[j]) {
                    if (j == n - 1) {
                        return true;
                    }
                    if (t[k] > 1) {
                        f[j].push_back(t[k] - 1);
                    }
                    f[j].push_back(t[k]);
                    f[j].push_back(t[k] + 1);
                    continue;
                }
            }
        }
        return false;
    }
};
相关推荐
退休倒计时1 小时前
【每日一题】LeetCode 17. 电话号码的字母组合 TypeScript
算法·leetcode·typescript
临沂堇2 小时前
刷题日志 | LeetCode Hot 100 双指针
算法·leetcode·职场和发展
XWalnut2 小时前
LeetCode刷题 day29
java·算法·leetcode
小欣加油4 小时前
leetcode1331 数组序号转换
数据结构·c++·算法·leetcode·职场和发展
Hesionberger6 小时前
动态规划与二分法破解最长递增子序列
java·数据结构·python·算法·leetcode
令狐掌门7 小时前
2026华为OD面试题020:日志文件异常检测
算法·leetcode·华为od
To_OC15 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
海石1 天前
【JS击败90%】前缀和+定长滑动窗口
算法·leetcode
Tisfy1 天前
LeetCode 2685.统计完全连通分量的数量:DFS求每个连通块的边点数
算法·leetcode·深度优先··题解·连通图·全连通分量
海石1 天前
1次遍历,空间复杂度击败100%,时间复杂度击败85%
算法·leetcode