首页 > 其他分享 >#yyds干货盘点# 动态规划专题:信封嵌套

#yyds干货盘点# 动态规划专题:信封嵌套

时间:2022-10-28 18:31:18浏览次数:62  
标签:信封 yyds num int max 嵌套 干货 input dp

1.简述:

描述

给 n 个信封的长度和宽度。如果信封 a 的长和宽都小于信封 b ,那么信封 a 可以放到信封 b 里,请求出信封最多可以嵌套多少层。

数据范围: #yyds干货盘点# 动态规划专题:信封嵌套_i++ , #yyds干货盘点# 动态规划专题:信封嵌套_i++_02

要求:空间复杂度 #yyds干货盘点# 动态规划专题:信封嵌套_i++_03,时间复杂度 #yyds干货盘点# 动态规划专题:信封嵌套_i++_04要求:空间复杂度 #yyds干货盘点# 动态规划专题:信封嵌套_时间复杂度_05 ,时间复杂度 #yyds干货盘点# 动态规划专题:信封嵌套_i++_06

输入描述:

第一行输入一个正整数 n ,表示信封的数量

后续 n 行每行输入两个正整数表示信封的长度和宽度

输出描述:

输出最多可以嵌套的层数

示例1

输入:

9
3 4
2 3
4 5
1 3
2 2
3 6
1 2
3 2
2 4

输出:

4

说明:

从里到外是 (1,2) (2,3) (3,4) (4,5)
示例2

输入:

2
1 4
4 1

输出:

1

2.代码实现:

import java.util.*;
public class Main{
public static void main(String []args){
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int [][]num=new int[n][2];
for(int i=0;i<n;i++){
num[i][0]=input.nextInt();
num[i][1]=input.nextInt();
}
Arrays.sort(num,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
return a[0]==b[0]?a[1]-b[1]:a[0]-b[0];
}
});
//两个维度的最长上升子序列
int[]dp=new int[n];
Arrays.fill(dp,1);
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if((num[j][0]>num[i][0])&&(num[j][1]>num[i][1])){
dp[j]=Math.max(dp[j],dp[i]+1);
}
}
}
int max=0;
for(int i=0;i<n;i++){
max=Math.max(max,dp[i]);
}
System.out.println(max);
}

}


标签:信封,yyds,num,int,max,嵌套,干货,input,dp
From: https://blog.51cto.com/u_15488507/5805248

相关文章

  • #yyds干货盘点# 前端歌谣的刷题之路-第一百四十二题-单列布局
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了......
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百四十题-flex-grid
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了......
  • lambda + zip实现多层嵌套列表
    1.可滑动的序列自定义一个函数根据参数n的值,变成对应个元素的容器(zip)"""listvar=[1,2,3,4,5,6,7,8,9]n=2listvar=[[1,2],[3,4],[5,6],[7,8]]n=3listvar=[......
  • #yyds干货盘点#vue的防抖
    在监听频繁触发的事件时,一定要多加小心,比如用户在输入框打字、窗口大小调整、滚动、IntersectionObserver事件。这些事件总是被频繁触发,可能几秒一次。如果针对每次事件......
  • nacos配置Map嵌套List数据
    nacos配置yaml文件,读取格式为Map<String,List<String>>数据:1、当数据不含有中文字符时,格式如下:test:map:key1:-value1-value2key2:-v......
  • #yyds干货盘点# 动态规划专题:拦截导弹
    1.简述:描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:全排列
    题目:给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。 示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2]......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:最大子数组和
    题目:给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。 示例1:输入:nums=[-2,1,-3,4,-1,......
  • #yyds干货盘点#前端迪米特法则
    迪米特法则(LawofDemeter)又叫做最少知识原则,也就是说,一个对象应当对其他对象尽可能少的了解。不和陌生人说话。英文简写为:LoD。迪米特法则的目的在于降低类之间的耦合......
  • #yyds干货盘点#【愚公系列】2022年10月 微信小程序-数据绑定
    前言1.小程序页面结构微信小程序的页面结构主要是分别由四个文件组成:js(逻辑处理文件):负责页面逻辑内容的处理,遵循js语言框架。json(配置文件):用来设置页面的窗口内容,......