本文主要是介绍C语言 | Leetcode C语言题解之第354题俄罗斯套娃信封问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
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;
}
这篇关于C语言 | Leetcode C语言题解之第354题俄罗斯套娃信封问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!