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;
}
相关推荐
老鼠只爱大米31 分钟前
LeetCode经典算法面试题 #98:验证二叉搜索树(递归法、迭代法等五种实现方案详解)
算法·leetcode·二叉树·递归·二叉搜索树·迭代
小魏每天都学习6 小时前
【算法——c/c++]
c语言·c++·算法
智码未来学堂7 小时前
探秘 C 语言算法之枚举:解锁解题新思路
c语言·数据结构·算法
彷徨而立9 小时前
【C/C++】strerror、GetLastError 和 errno 的含义和区别?
c语言·c++
代码无bug抓狂人10 小时前
动态规划(附带入门例题)
c语言·算法·动态规划
恶魔泡泡糖11 小时前
51单片机串口通信
c语言·单片机·嵌入式硬件·51单片机
知无不研12 小时前
c语言动态内存规划
c语言·动态内存管理·内存泄露·基础知识·malloc·realloc·calloc
圣保罗的大教堂12 小时前
leetcode 3650. 边反转的最小路径总成本 中等
leetcode
31087487612 小时前
0005.C/C++学习笔记5
c语言·c++·学习
历程里程碑13 小时前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法