给 n 个信封的长度和宽度。如果信封 a 的长和宽都小于信封 b ,那么信封 a 可以放到信封 b 里,请求出信封最多可以嵌套多少层。
数据范围:
,
要求:空间复杂度
,时间复杂度 %20%5C)
进阶:空间复杂度
,时间复杂度 )
进阶:空间复杂度
[[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}。 [[1,4],[4,1]]
1
时间复杂度O(nlog n),空间复杂度O(n)。
function maxLetters( letters ) {
// write code here
let len = letters.length
if(!len) return 0
letters.sort((a,b)=> a[0]=== b[0]? a[1]-b[1]:a[0]-b[0])
const dp = new Array(len).fill(1)
dp[0] = 1
for(let i = 1;i<len;i++){
for(let j = 0;j<i;j++){
if(letters[i][1]>letters[j][1] && letters[i][0] !== letters[j][0]){
dp[i] = Math.max(dp[i], dp[j]+1)
}
}
}
return Math.max(...dp)
}