C语言 | Leetcode C语言题解之第354题俄罗斯套娃信封问题

题目:

题解:

cpp 复制代码
int cmp(int** a, int** b) {
    return (*a)[0] == (*b)[0] ? (*b)[1] - (*a)[1] : (*a)[0] - (*b)[0];
}

int maxEnvelopes(int** envelopes, int envelopesSize, int* envelopesColSize) {
    if (envelopesSize == 0) {
        return 0;
    }

    qsort(envelopes, envelopesSize, sizeof(int*), cmp);

    int n = envelopesSize;
    int f[n];
    for (int i = 0; i < n; i++) {
        f[i] = 1;
    }
    int ret = 1;
    for (int i = 1; i < n; ++i) {
        for (int j = 0; j < i; ++j) {
            if (envelopes[j][1] < envelopes[i][1]) {
                f[i] = fmax(f[i], f[j] + 1);
            }
        }
        ret = fmax(ret, f[i]);
    }
    return ret;
}
相关推荐
会编程的土豆4 小时前
由c/c++速通go语言,新手必看
c语言·c++·golang
无限进步_5 小时前
C++ 多态机制完全解析:从虚函数重写到动态绑定原理
java·c语言·jvm·数据结构·c++·windows·后端
爱编码的小八嘎7 小时前
C语言完美演绎9-13
c语言
爱编码的小八嘎7 小时前
C语言完美演绎9-19
c语言
shada7 小时前
mini-dog-c编译器开发 - 04 递归下降解析器
c语言·编译器
无限进步_8 小时前
二叉搜索树完全解析:从概念到实现与应用场景
c语言·开发语言·数据结构·c++·算法·github·visual studio
顾鉴行思9 小时前
10 字符串常量到底存在哪里?
c语言·汇编·经验分享
Aurorar0rua10 小时前
CS50 x 2024 Notes C - 09
c语言·开发语言·学习方法
承渊政道11 小时前
【动态规划算法】(完全背包问题从状态定义到空间优化)
数据结构·c++·学习·算法·leetcode·动态规划·哈希算法
超级大福宝11 小时前
【力扣48. 旋转图像】超好记忆版 + 口诀
c++·算法·leetcode