俄羅斯信封套娃問題-二維最長遞增子序列

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
英文地址,請注明出處:http://en.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 判…