俄罗斯信封套娃问题-二维最长递增子序列

354. 俄罗斯套娃信封问题 - 力扣(LeetCode)

Solution

对一个维度从小到大排序,然后对另外一个维度求最长上升子序列即可。

class Solution {
public:struct node {int w, h;node(int w, int h) {this->w = w;this->h = h;}};static bool cmp(node a, node b) {return a.w < b.w || (a.w == b.w && a.h > b.h);}int maxEnvelopes(vector<vector<int>>& envelopes) {int n = envelopes.size();int ans = 0;vector<node>nums1;// vector<node>nums2;for (vector<int>x : envelopes) {nums1.emplace_back(node(x[0], x[1]));// nums2.emplace_back(node(x[1], x[0]));}sort(nums1.begin(), nums1.end(), cmp);// sort(nums2.begin(), nums2.end(), cmp);// ans = max(lengthOfLIS(nums1), lengthOfLIS(nums2));ans=lengthOfLIS(nums1);return ans;}int lengthOfLIS(vector<node>& nums) {int n = nums.size();vector<int>ends;ends.push_back(nums[0].h);for (int i = 1; i < n; ++i) {int cur = nums[i].h;int index = bs(ends, cur);if (index == -1) {ends.push_back(cur);}else {ends[index] = cur;}}return ends.size();}int bs(vector<int>& nums, int v) {int l = 0, r = nums.size() - 1;int ans = -1;while (l <= r) {int mid = (l + r) >> 1;if (nums[mid] >= v) {ans = mid;r = mid - 1;}else {l = mid + 1;}}return ans;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93266.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

区块链:用数学重构信任的数字文明基石

在数字经济浪潮席卷全球的今天&#xff0c;虚拟与现实的融合正面临一个根本性挑战——如何让数字世界的"承诺"拥有与现实世界同等的可信度&#xff1f; 当我们在电商平台下单时&#xff0c;如何确保商品质量与描述一致&#xff1f;当企业签署电子合同时&#xff0c;如…

Go语言defer机制详解与应用

一、defer作用Go语言的defer关键字提供了一种延迟执行机制&#xff0c;它能确保指定的函数调用在当前函数返回前被执行。这一特性常用于资源释放和异常处理场景。二、defer基本特性&#xff08;1&#xff09;执行时机&#xff1a;defer 语句会在外层函数返回前执行&#xff0c;…

服务器安全防护详细介绍

一、方案概述随着信息技术的飞速发展&#xff0c;服务器作为企业数据存储、业务运行的核心载体&#xff0c;其安全性至关重要。本服务器安全防护方案旨在通过多层次、全方位的安全防护策略&#xff0c;构建一个完整的服务器安全防护体系&#xff0c;有效抵御各类安全威胁&#…

网站与政务新媒体自查情况的报告工具功能

要高效地完成网站与政务新媒体的自查&#xff0c;并生成报告&#xff0c;通常需要借助专业的自动化巡检工具。这些工具能够模拟人工检查&#xff0c;但速度更快、覆盖面更广&#xff0c;并且能将发现的问题汇总成结构化的报告。一、网站与政务新媒体自查报告的工具实现功能这类…

JVM核心原理与实战优化指南

一、成为卓越的Java开发者 无论你是大学生还是资深工程师&#xff0c;学习JVM都至关重要。你可能是为了&#xff1a; 征服技术面试进行系统调优深入理解Java生态 学习路径建议&#xff1a; 从Java语言本质切入&#xff0c;逐步深入JVM核心机制&#xff0c;兼顾不同背景学习者…

TCP/IP、socket、http

区分与联系 TCP/IP 是底层规则,规定数据如何传输; Socket 是操作 TCP/IP 的工具,让程序能实现通信; HTTPS 是上层应用,用 Socket 调用 TCP/IP 协议,实现安全的数据传输。 应用层:HTTPS(基于 HTTP + SSL/TLS)| | socket连接了应用层和传输层↓ 传输层:TCP(可靠…

Go语言中的指针接收者

Go语言中的指针接收者&#xff08;Pointer Receiver&#xff09;与Java类中的方法在设计思想上确实有相似之处&#xff0c;尤其在对象状态修改和性能优化上&#xff0c;但两者在实现机制和语言哲学上存在显著差异。以下从核心特性、设计对比和应用场景展开分析&#xff1a;一、…

计算机视觉(opencv)实战三——图像运算、cv2.add()、cv2.addWeighted()

图像运算详解&#xff1a;加法运算与加权运算在数字图像处理中&#xff0c;图像运算是基础且常用的操作之一。它能够对两幅图像或图像与常数进行加减乘除&#xff0c;从而实现亮度调整、融合叠加、特效制作等功能。本文将重点介绍 OpenCV 中的图像加法运算与加权运算&#xff0…

Redis核心架构

一、核心模块如图 Client 客户端&#xff0c;官方提供了 C 语言开发的客户端&#xff0c;可以发送命令&#xff0c;性能分析和测试等。网络层事件驱动模型&#xff0c;基于 I/O 多路复用&#xff0c;封装了一个短小精悍的高性能 ae 库&#xff0c;全称是 a simple event-driven…

Python爬虫大师课:HTTP协议深度解析与工业级请求封装

Python爬虫大师课&#xff1a;HTTP协议深度解析与工业级请求封装 从零构建企业级爬虫框架&#xff08;附完整源码&#xff09; 一、爬虫基础&#xff1a;网络世界的通行证 ​​HTTP协议核心数据​​&#xff1a; 全球网站数量&#xff1a;20亿 HTTP请求占比&#xff1a;83% …

机器学习——PCA(主成分分析)降维

PCA&#xff08;主成分分析&#xff09;降维详解一、什么是 PCAPCA&#xff08;Principal Component Analysis&#xff0c;主成分分析&#xff09;是一种常用的数据降维方法。它通过线性变换将原始的高维数据映射到低维空间&#xff0c;同时尽可能保留原数据的主要信息&#xf…

把 AI 装进“冰箱贴”——基于超低功耗语音合成的小屏电子价签

标签&#xff1a;电子价签、语音合成、TTS、超低功耗、电子墨水、BLE、离线语音 ---- 1. 背景&#xff1a;价签也要开口说话&#xff1f; 超市做促销&#xff0c;顾客拿价签一扫&#xff0c;“今日番茄 2.99 元/斤&#xff0c;会员再享 9 折” 直接语音播放。 硬件限制&#xf…

挖漏洞是什么意思?挖漏洞赚钱入门到精通,收藏这篇就够了!

挖漏洞是什么意思&#xff1f;挖漏洞赚钱入门到精通&#xff0c;收藏这篇就够了&#xff01; 什么是漏洞挖掘 漏洞挖掘是指通过分析软件、系统或网络中存在的安全漏洞来发现并利用这些漏洞。漏洞挖掘是信息安全领域的一项重要工作&#xff0c;可以帮助企业和组织提高系统的安…

如何理解AP中SM中宿主进程?

在AUTOSAR Adaptive Platform&#xff08;AP&#xff09;中&#xff0c;状态管理&#xff08;State Management, SM&#xff09;的宿主进程&#xff08;Host Process&#xff09; 是实现状态机运行的核心载体&#xff0c;其本质与运作机制可通过以下结构化解析深入理解&#xf…

无人机光电探测模块技术分析

一、技术要点1. 多光谱成像技术 可见光与红外融合&#xff1a;白天依赖可见光高分辨率成像&#xff08;识别外形、颜色&#xff09;&#xff0c;夜间或低光照条件下切换至红外热成像&#xff08;捕捉0.5℃级温差&#xff09;&#xff0c;通过双波段互补提升全天候能力。 激光…

第40周——GAN入门

目录 目录 目录 前言 一、定义超参数 二、下载数据 三、配置数据 四、定义鉴别器 五、训练模型并保存 总结 前言 &#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、定义超参数 import argparse import os i…

Nginx性能优化与安全配置:打造高性能Web服务器

系列文章索引&#xff1a; 第一篇&#xff1a;《Nginx入门与安装详解&#xff1a;从零开始搭建高性能Web服务器》第二篇&#xff1a;《Nginx基础配置详解&#xff1a;nginx.conf核心配置与虚拟主机实战》第三篇&#xff1a;《Nginx代理配置详解&#xff1a;正向代理与反向代理…

二分算法(模板)

例题1&#xff1a; 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 算法原理&#xff1a;&#xff08;二分&#xff09; 通过遍历也可以通过&#xff0c;但是二分更优且数据量越大越能体现。 二分思路&#xff1a; 1.mid1 (left right)/2 与 mid2 right (right …

VUE3 学习笔记2 computed、watch、生命周期、hooks、其他组合式API

computed 计算属性在vue3中&#xff0c;虽然也能写vue2的computed&#xff0c;但还是更推荐使用vue3语法的computed。在Vue3中&#xff0c;计算属性是组合式API&#xff0c;要想使用computed&#xff0c;需要先对computed进行引入&#xff1a;import { computed } from vuecomp…

【java面试day13】mysql-定位慢查询

文章目录问题&#x1f4ac; Question 1相关知识问题 &#x1f4ac; Question 1 Q&#xff1a;这条sql语句执行很慢&#xff0c;你如何分析呢&#xff1f; A&#xff1a;当一条 SQL 执行较慢时&#xff0c;可以先使用 EXPLAIN 查看执行计划&#xff0c;通过 key 和 key_len 判…