[LeetCode]354. Russian Doll Envelopes
来源:互联网 发布:二端口z参数矩阵怎么算 编辑:程序博客网 时间:2024/05/13 05:54
https://leetcode.com/problems/russian-doll-envelopes/
LIS(最长递增子序列)变形题
要熟练使用Arrays的API主要是sort和binarySearch。二维数组也可以sort(加comparator即可)。
按照宽度递增排序,宽度相同的高度按照递减排序。然后遍历envelopes,用dp[i]记录套上i + 1个娃娃时所需要的最小高度(说是最小高度是因为宽度相同时高度递减排序,同时因为宽度递增排序,所以顺序遍历时宽度不需要考虑)
public class Solution { public int maxEnvelopes(int[][] envelopes) { if (envelopes == null || envelopes.length == 0) { return 0; } Arrays.sort(envelopes, new Comparator<int[]>() { public int compare(int[] arr1, int[] arr2) { if (arr1[0] == arr2[0]) { return arr2[1] - arr1[1]; } else { return arr1[0] - arr2[0]; } } }); int[] dp = new int[envelopes.length]; int len = 0; for (int[] envelope : envelopes) { int index = Arrays.binarySearch(dp, 0, len, envelope[1]); if (index < 0) { index = -(index + 1); } dp[index] = envelope[1]; if (index == len) { len++; } } return len; }}
0 0
- LeetCode 354. Russian Doll Envelopes
- leetcode 354. Russian Doll Envelopes
- [leetcode] 354. Russian Doll Envelopes
- leetcode.354. Russian Doll Envelopes
- leetcode 354. Russian Doll Envelopes
- leetcode 354.Russian Doll Envelopes
- LeetCode 354. Russian Doll Envelopes
- Leetcode-354. Russian Doll Envelopes
- [LeetCode]354. Russian Doll Envelopes
- [leetcode] 354. Russian Doll Envelopes
- Leetcode 354. Russian Doll Envelopes
- [leetcode]354. Russian Doll Envelopes
- LeetCode 354. Russian Doll Envelopes
- 【Leetcode】Russian Doll Envelopes
- leetcode Russian Doll Envelopes
- LeetCode Russian Doll Envelopes
- LeetCode -- Russian Doll Envelopes
- 【Leetcode】Russian Doll Envelopes
- 牛顿法
- ROS 远程控制之码率问题
- Python零基础入门之十五类中的魔法方法
- 四阶龙格库塔法
- 4-13 折半查找
- [LeetCode]354. Russian Doll Envelopes
- 亚当姆斯预报校正系统
- Redis数据持久化
- mysql 数据库导出各导入命令
- 【腾讯Bugly干货分享】你为什么需要 Kotlin
- Linux C++的多线程编程
- 这家大公司关闭中国工厂,因为被罚15亿?
- APUE-第一章学习-UNIX基础知识-习题
- 7个示例科普CPU CACHE