拆分成两个子问题:对二维数组按照一定的方式排序 + 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动态规划)相关推荐

  1. 354. 俄罗斯套娃信封问题(动态规划)

    354. 俄罗斯套娃信封问题 问题描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都 ...

  2. LeetCode - 354 俄罗斯套娃信封问题

    题目来源 354. 俄罗斯套娃信封问题 - 力扣(LeetCode) 题目描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的 ...

  3. 354. 俄罗斯套娃信封问题

    354. 俄罗斯套娃信封问题 题目 一.思路 二.代码 总结 题目 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. ...

  4. 【动态规划-困难】354. 俄罗斯套娃信封问题

    [题目] 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就 ...

  5. leetcode 354. 俄罗斯套娃信封问题(二维排序有关)

    题目描述 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现.当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多能有 ...

  6. LeetCode 354. 俄罗斯套娃信封问题(最长上升子序 DP/二分查找)

    1. 题目 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多 ...

  7. leetcode 354. 俄罗斯套娃信封问题(dp+二分)

    给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现.当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多能有多少个信封 ...

  8. 354. 俄罗斯套娃信封问题(良心注释)

    问题描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就 ...

  9. LeetCode 354 俄罗斯套娃信封问题

    给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另 ...

最新文章

  1. 《Adobe Illustrator CS4中文版经典教程》—第0课0.11节将外观属性存储为图形样式...
  2. WPF不同线程之间的控件的访问
  3. iOS-UICollectionView
  4. 前端学习(3238):react生命周期4
  5. java 文曲星猜数字,文曲星里的猜数字代码(原创)
  6. Android中用URL模拟一个简单的图片加载器
  7. C++11 移动语义与右值引用
  8. 「leetcode」51. N皇后【回溯算法】详细图解!
  9. pxe无盘服务器教程,PXE无盘网络原理简介及实战应用
  10. 【设计模式】-工厂模式->抽象工法模式(源码与类图解析)
  11. 金融衍生品数据分析_大数据_numpy,matplotlib,pandas学习
  12. spring boot 集成redis监听Key值事件失效
  13. 佛祖释迦牟尼说的最经典的一句话
  14. html网站title、description和keywords、
  15. 2007word如何转PDF
  16. java opencsv 乱码_教你如何在Python中读,写和解析CSV文
  17. 无线路由器连接电信光猫实现拨号上网方法
  18. Android-屏幕截图功能实现
  19. Django之爱鲜蜂项目开发 day01 (一)
  20. [Poi0504]Piggy Banks小猪存钱罐 (并查集)

热门文章

  1. 融云IM报错connect should be called in main process
  2. 解决某些ERP软件无法用VNN的IP地址进行连接的问题
  3. DSP28335通过FFT变换实现高频滤波
  4. 华为手机一直android,为何我的华为手机一直停留在Android正在升级…,高人求助!...
  5. 用python制作微信好友个性签名的词云图
  6. sai绘制可爱海豚和上色教程
  7. c语言程序整数划分源代码,C语言实现整数划分问题
  8. 试讲教案模板 计算机 网络,试讲教案模板,网络技术.doc
  9. AGV自动导引运输车
  10. Terraform 学习总结(4)—— Terraform 实战