有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上。出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一点。已知马戏团每个人的身高和体重,请编写代码计算叠罗汉最多能叠几个人。

示例:

输入: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 n=height.length;int[][] com=new int[n][2];for(int c=0;c<n;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]);//身高升序,体重降序dp=new int[n];int res=0;dp[res]=com[0][1];res++;for(int i=1;i<n;i++)if(com[i][1]>dp[res-1]) dp[res++]=com[i][1];else {int l=0,r=res-1;//在已经选择了的体重中,找出当前体重应该放置的位置while (l<=r){int mid=(r-l)/2+l;if(dp[mid]>=com[i][1])r=mid-1;else l=mid+1;}dp[l]=com[i][1];}return res;}
}

leetcode面试题 17.08. 马戏团人塔(二分法)相关推荐

  1. leetcode —— 面试题 17.08. 马戏团人塔

    有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一点.已知马戏团每个人的身高和体重,请编写代码计算叠罗汉最多能叠几个人. 示例: ...

  2. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  3. leetcode 面试题 17.14. 最小K个数 大顶堆 小顶堆 快排

    leetcode 面试题 17.14. 最小K个数 [难度:中等] 设计一个算法,找出数组中最小的k个数.以任意顺序返回这k个数均可. 示例: 输入: arr = [1,3,5,7,2,4,6,8], ...

  4. [leetcode 面试题 17.17] -- 多次搜索,KMP与字典树

    [leetcode 面试题 17.17] -- 多次搜索 题目来源 分析 KMP思路 完整代码 字典树 完整代码 题目来源 https://leetcode-cn.com/problems/multi ...

  5. ⭐算法入门⭐《堆》中等01 —— LeetCode 面试题 17.09. 第 k 个数

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   有些数的素因子只有 3 ...

  6. LeetCode 面试题 17.16. 按摩师

    面试题 17.16. 按摩师 题目:一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接.在每次预约服务之间要有休息时间,因此她不能接受相邻的预约.给定一个预约请求序列,替按摩师找到最 ...

  7. leetcode —— 面试题 17.12. BiNode

    二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点).实现一个方法,把二叉搜索树转换为单向链表,要求值的顺序保持不变,转换操作应是原址的,也就是在原始的二叉 ...

  8. leetcode——面试题 17.10. 主要元素

    问题描述: 数组中占比超过一半的元素称之为主要元素.给定一个整数数组,找到它的主要元素.若没有,返回-1. 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5 示例 2: 输入:[3, ...

  9. leetcode 面试题 17.21. 直方图的水量(单调栈)

    给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下, ...

最新文章

  1. DFA在C#中的实现:过滤敏感词
  2. php不能加载oci8,无法加载动态库'oci8.so'(PHP 7.2)
  3. 计算机视觉Computer Vision-机器学习Machine Learning近年部分综述
  4. 涉足计算机视觉领域要知道的
  5. c++代码小游戏_用Python编写一个打乒乓球小游戏
  6. PHP调用wsdl文件类型的接口代码分享
  7. UVA - 12338 Anti-Rhyme Pairs(后缀数组)
  8. elasticsearch的update_by_query
  9. Redis笔记之基本数据结构 字典
  10. “405 – 不允许用于访问此页的 HTTP 谓词。”的解决方案
  11. Git 好用的客户端 SourceTree破解
  12. Google Jump Consistent Hash 一致性哈希算法
  13. 程序员常见面试题汇总
  14. c语言找最大素数,C语言实现寻找大素数
  15. 词根词缀学单词【1】
  16. Word 远程调用失败:异常来自 HRESULT:0x800706BE
  17. Android键盘灯亮度控制
  18. OpenStack Victoria搭建(七)安装并验证 Placement
  19. java 推拉流_libsrt+ffmpeg推拉流(一)
  20. non_blocking参数的设置。

热门文章

  1. Linux下串口通信详解
  2. 【电路原理】学习笔记(0):电路与电路模型
  3. 线程池原理及C语言实现线程池
  4. 【Leetcode | 03】String
  5. Leetcode 102. 二叉树的层次遍历
  6. java生成pdf工具类,聪明人已经收藏了!
  7. 美团点评APP在移动网络性能优化的实践,通用流行框架大全
  8. Centos 7和 Centos 6开放查看端口 防火墙关闭打开
  9. hadoop2.2.0 core-site.xml--security properties
  10. ASP.NET2.0瞎记____主题皮肤