/*** A长宽度  B书长宽度 就可以叠放* 输出:最多可以叠放几本* 输入用例://String book = "[[20,16],[10,10],[9,10],[15,11],[2,4],[8,9],[3,5],[8,10],[7,10]]";//String book = "[[20,20],[15,1],[10,5],[8,3]]";// String book = "[[20,20],[16,6],[15,4],[10,6],[8,3]]";// String book = "[[20,20],[15,1],[10,5],[8,3]]";//String book = "[[20,16],[10,10],[9,10],[15,11]]";//String book = "[[16,15], [13, 12], [15, 14]]";*/
public class BookStacking {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String book = sc.nextLine();//匹配数字Pattern pattern = Pattern.compile("\\d+");//Pattern pattern = Pattern.compile("[a-zA-Z]+"); 匹配字母//Pattern pattern = Pattern.compile("\\D+"); 匹配非数字Matcher matcher = pattern.matcher(book);String [] size = book.split(",");int [][] value = new int[size.length/2][2];int i = 0;int j = 0;//将数字转化为List存储while(matcher.find()){String match = matcher.group();Integer integer = Integer.valueOf(match);value[i][j] = integer;if (matcher.find()){String match2 = matcher.group();Integer integer2 = Integer.valueOf(match2);j++;value[i][j] = integer2;j = 0;}i++;}//排序Arrays.sort(value,(Comparator.comparingInt(o -> o[0])));//动态规划,dp[i]表示第i本时,满足条件的最大数//思想类似连续递增子序列int[] dp = new int[value.length];dp[0] = 1;//比较书本长宽大小int count = 1;Arrays.fill(dp,1);for (int k = 1; k <= value.length - 1 ; k++){for (int m = 0; m < k ; m++){if (value[k][0] > value[m][0] && value[k][1] > value[m][1]){dp[k] = Math.max(dp[k],dp[m]+1);}count = Math.max(count,dp[k]);}}System.out.println(count);}
}

华为OD机考真题 -书籍长宽度叠放几本相关推荐

  1. 华为od机考真题(JAVA)

    import java.util.Arrays; import java.util.Scanner; 001 [5键键盘的输出] 002 [N进制减法] 003 [TLV解码] 004 [VLAN资源 ...

  2. 华为od机考真题-特殊计算

    while 1:try:nums = input()stack = []i = 0j = 1while j < len(nums):

  3. 华为od机考真题-快速人名查找

    while 1:try:nums = input().split(",")query = input()rsp = []for name

  4. 华为od机考真题-高矮个子排队,算法第九讲-高频真题解析 II

    while 1:try:nums = input().split()# 非法输入if not "".join(nums).isdigit():print

  5. 华为od机考真题-HJ95人民币转换(较难)

    # 首先分为 整数部分 和 小数部分 # 整数部分 又可以每四位拆分,每四位 都可以按 个十百千去计算,需要特别注意 万万 需要转为 亿 # 没有给定数值范围,可以先按最大 千万亿 设计dct = [ ...

  6. 华为od机考真题-数组拼接

    从每个数组当中按照顺序取出固定长度的内容合并到新的数组当中,取完的内容会被删除掉,如果该行不足固定长度或者已经是空的,则直接取出剩余部分的内容放到新的数组当中继续下一行 while 1:try:n = ...

  7. 华为od机考真题-报数游戏

    while 1:try:m = int(input())if 1 >= m or m >= 100:print("ERROR!")else:# 模拟1-100的圈num ...

  8. 华为od机考真题-判断字符串子序列

    class Solution:def isSubsequence(self, s: str, t: str) -> bool:step = -1for x in s:step_x = t.fin ...

  9. 华为od机考真题-字符串以N为单位分段‘

    while 1:try:m, n = list(map(int, input().split()))nums = input().split()for

最新文章

  1. szu 寒训第二天 树状数组 二维树状数组详解,以及树状数组扩展应用【求逆序对,以及动态第k小数】
  2. Python 安装cx_Oracle模块折腾笔记
  3. 只学一点点:我的技术学习策略
  4. 用SSD训练自己的数据集
  5. java for list i_Java中ArrayList的fori和foreach效率比较
  6. 操作系统【八】文件管理
  7. 5分钟能回答的人,年薪25万美金以上
  8. 消息中间件学习总结(4)——RocketMQ之RocketMQ 迈入50万TPS消息俱乐部
  9. c+安装+mysql+服务器端_centos7安装JDK1.7+tomcat7+mysql5.5
  10. [2014-12-30]如何动态构造Lambda表达式(动态构造Lambda查询条件表达式)
  11. 状态监测与故障智能诊断技术在能源动力机械内燃机的应用
  12. 2010计算机录制宏步骤,在word2010录制宏的操作
  13. arm版红帽企业linux,红帽:ARM架构下的Linux不是玩笑
  14. ISO/IEC 27018公有云中个人身份信息管理体系认证概述
  15. android 乐固加固,android - 上应用宝之前,使用乐固 进行加固。 (只能在windows 下)...
  16. uni-app公用方法
  17. postman脚本批量请求
  18. 杰锐思冲刺深交所:年营收5.57亿 文二龙兄弟控制82%股权
  19. 【STM32F429】第4章 ThreadX FileX文件系统移植到STM32F429(SD卡)
  20. 震惊!重新认识资本主义。

热门文章

  1. Android 实现短信的备份恢复
  2. php通用漏洞phpinfo,php文件包含漏洞(利用phpinfo)复现
  3. matlab浮点数求绝对值_matlab绝对值函数怎么表示 matlab绝对值怎么表示?
  4. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
  5. 研究生课程教给我什么?
  6. End-to-End Semi-Supervised Object Detection with Soft Teacher 解读
  7. html表单怎么自动换行,html表单怎么换行 首先新建一个HTML文件
  8. SMC客户案例–专业知识:应对挑战 真空角座阀的应用
  9. 码农西游 | 写一本技术书可以赚多少钱
  10. 关于php页面无缘无故不能访问的一个问题