合肥网站开发培训学校,济南外贸网站建设,小视频网址源码,运营的三个核心要素有个马戏团正在设计叠罗汉的表演节目#xff0c;一个人要站在另一人的肩膀上。出于实际和美观的考虑#xff0c;在上面的人要比下面的人矮一点且轻一点。已知马戏团每个人的身高和体重#xff0c;请编写代码计算叠罗汉最多能叠几个人。
示例#xff1a;
输入#xff1a;…有个马戏团正在设计叠罗汉的表演节目一个人要站在另一人的肩膀上。出于实际和美观的考虑在上面的人要比下面的人矮一点且轻一点。已知马戏团每个人的身高和体重请编写代码计算叠罗汉最多能叠几个人。
示例
输入height [65,70,56,75,60,68] weight [100,150,90,190,95,110] 输出6 解释从上往下数叠罗汉最多能叠 6 层(56,90), (60,95), (65,100), (68,110), (70,150), (75,190)
class Solution {int[] dp;public int bestSeqAtIndex(int[] height, int[] weight) {int nheight.length;int[][] comnew int[n][2];for(int c0;cn;c){com[c][0]height[c];com[c][1]weight[c];}Arrays.sort(com,(o1, o2) - o1[0]o2[0]?o2[1]-o1[1]:o1[0]-o2[0]);//身高升序体重降序dpnew int[n];int res0;dp[res]com[0][1];res;for(int i1;in;i)if(com[i][1]dp[res-1]) dp[res]com[i][1];else {int l0,rres-1;//在已经选择了的体重中找出当前体重应该放置的位置while (lr){int mid(r-l)/2l;if(dp[mid]com[i][1])rmid-1;else lmid1;}dp[l]com[i][1];}return res;}
}