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;
}
相关推荐
ziguo112211 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
keep intensify13 小时前
最长有效括号
算法·leetcode·动态规划
CoderYanger13 小时前
A.每日一题:1979. 找出数组的最大公约数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
三十岁老牛再出发14 小时前
07.26每日总结
linux·c语言·mysql
code_pgf14 小时前
C/C++ 常用容器功能汇总
c语言·开发语言·c++
个 人 练 习 生15 小时前
strcmp与strstr函数的模拟实现
c语言·开发语言·经验分享·学习·程序人生
小羊先生car15 小时前
RTOS-F429-HAL-基础内容认识(2026/7/26)
c语言
Discipline~Hai16 小时前
ARM03-蜂鸣器和中断
c语言·arm开发·单片机·嵌入式硬件·嵌入式
冻柠檬飞冰走茶17 小时前
PTA基础编程题目集 7-7 12-24小时制(C语言实现)
c语言·开发语言·数据结构·算法
INGNIGHT17 小时前
528.按权重随机选择(前缀和&二分法)加权负载均衡
算法·leetcode