354. 俄罗斯套娃信封问题(Java动态规划)
拆分成两个子问题:对二维数组按照一定的方式排序 + LIS算法
步骤:
首先先对宽度进行升序排序,当遇到宽度相同的情况时,就按高度降序排序;之后把所有的高度作为一个数组,在这个数组上使用LIS
然后…然后就超时了,这测试用例貌似是更新了
但是大致的解法步骤和方向基本上是没有问题的
class Solution {public int maxEnvelopes(int[][] envelopes) {int n = envelopes.length;Arrays.sort(envelopes,new Comparator<int[]>(){public int compare(int[] o1,int[] o2){return o1[0]==o2[0]?o2[1]-o1[1]:o1[0]-o2[0];}});int[] height = new int[n];for(int i =0;i<n;i++){height[i] = envelopes[i][1];}return lengthOfLIS(height);}public int lengthOfLIS(int[] nums){int[] dp = new int[nums.length];Arrays.fill(dp,1);for(int i = 0;i<nums.length;i++){for(int j = 0;j<i;j++){if(nums[i]>nums[j]){dp[i] = Math.max(dp[i],dp[j]+1);}}}int res = 0;for(int i = 0;i<dp.length;i++){res = Math.max(res,dp[i]);}return res;}
}
354. 俄罗斯套娃信封问题(Java动态规划)相关推荐
- 354. 俄罗斯套娃信封问题(动态规划)
354. 俄罗斯套娃信封问题 问题描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都 ...
- LeetCode - 354 俄罗斯套娃信封问题
题目来源 354. 俄罗斯套娃信封问题 - 力扣(LeetCode) 题目描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的 ...
- 354. 俄罗斯套娃信封问题
354. 俄罗斯套娃信封问题 题目 一.思路 二.代码 总结 题目 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. ...
- 【动态规划-困难】354. 俄罗斯套娃信封问题
[题目] 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就 ...
- leetcode 354. 俄罗斯套娃信封问题(二维排序有关)
题目描述 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现.当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多能有 ...
- LeetCode 354. 俄罗斯套娃信封问题(最长上升子序 DP/二分查找)
1. 题目 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多 ...
- leetcode 354. 俄罗斯套娃信封问题(dp+二分)
给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现.当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多能有多少个信封 ...
- 354. 俄罗斯套娃信封问题(良心注释)
问题描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就 ...
- LeetCode 354 俄罗斯套娃信封问题
给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另 ...
最新文章
- 《Adobe Illustrator CS4中文版经典教程》—第0课0.11节将外观属性存储为图形样式...
- WPF不同线程之间的控件的访问
- iOS-UICollectionView
- 前端学习(3238):react生命周期4
- java 文曲星猜数字,文曲星里的猜数字代码(原创)
- Android中用URL模拟一个简单的图片加载器
- C++11 移动语义与右值引用
- 「leetcode」51. N皇后【回溯算法】详细图解!
- pxe无盘服务器教程,PXE无盘网络原理简介及实战应用
- 【设计模式】-工厂模式->抽象工法模式(源码与类图解析)
- 金融衍生品数据分析_大数据_numpy,matplotlib,pandas学习
- spring boot 集成redis监听Key值事件失效
- 佛祖释迦牟尼说的最经典的一句话
- html网站title、description和keywords、
- 2007word如何转PDF
- java opencsv 乱码_教你如何在Python中读,写和解析CSV文
- 无线路由器连接电信光猫实现拨号上网方法
- Android-屏幕截图功能实现
- Django之爱鲜蜂项目开发 day01 (一)
- [Poi0504]Piggy Banks小猪存钱罐 (并查集)
热门文章
- 融云IM报错connect should be called in main process
- 解决某些ERP软件无法用VNN的IP地址进行连接的问题
- DSP28335通过FFT变换实现高频滤波
- 华为手机一直android,为何我的华为手机一直停留在Android正在升级…,高人求助!...
- 用python制作微信好友个性签名的词云图
- sai绘制可爱海豚和上色教程
- c语言程序整数划分源代码,C语言实现整数划分问题
- 试讲教案模板 计算机 网络,试讲教案模板,网络技术.doc
- AGV自动导引运输车
- Terraform 学习总结(4)—— Terraform 实战