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;
    }
};
相关推荐
草履虫建模2 小时前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
VT.馒头7 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
不穿格子的程序员11 小时前
从零开始写算法——普通数组篇:缺失的第一个正数
算法·leetcode·哈希算法
VT.馒头13 小时前
【力扣】2722. 根据 ID 合并两个数组
javascript·算法·leetcode·职场和发展·typescript
执着25914 小时前
力扣hot100 - 108、将有序数组转换为二叉搜索树
算法·leetcode·职场和发展
52Hz11815 小时前
力扣230.二叉搜索树中第k小的元素、199.二叉树的右视图、114.二叉树展开为链表
python·算法·leetcode
苦藤新鸡15 小时前
56.组合总数
数据结构·算法·leetcode
菜鸟233号15 小时前
力扣647 回文子串 java实现
java·数据结构·leetcode·动态规划
LiLiYuan.15 小时前
【Cursor 中找不到LeetCode 插件解决办法】
算法·leetcode·职场和发展
Charlie_lll15 小时前
力扣解题-[3379]转换数组
数据结构·后端·算法·leetcode