leetcode 349. 兩個數組的交集 思考分析

題目

給定兩個數組,編寫一個函數來計算它們的交集。
在這里插入圖片描述

1、暴力雙for循環

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {vector<int> result;vector<int> res;if(nums1.size()==0 || nums2.size()==0) return result;for(int i=0;i<nums1.size();i++){for(int j=0;j<nums2.size();j++){if(nums1[i] ==nums2[j]) res.push_back(nums1[i]);}}if(res.size()==0) return result;sort(res.begin(),res.end());//進行去重for(int i=0;i<res.size()-1;i++){if(res[i]!=res[i+1]) result.push_back(res[i]);}result.push_back(res[res.size()-1]);return result;}
};

2、利用哈希集合加速

容器的選擇

1、map/multimap的幾個特點以及操作

元素包含兩部分(key,value),key和value可以是任意類型
根據元素的key自動對元素排序,因此根據元素的key可以進行很快定位
不能直接改變元素的key,可以通過[ ]直接存取元素值
map中不允許key相同的元素,multimap允許key相同的元素

操作效果
map.c產生空的map
c.size()返回元素個數
count(key)返回鍵值==key的元素個數
find(key)返回鍵值==key 的第一個元素,找不到的話返回end
lower_bound(key)返回鍵值>=key的第一個元素
upper_bound(key)返回鍵值>key的第一個元素
equal_range(key)返回鍵值==key的元素區間
c.insert(pos,e)在pos位置為起點插入e的副本,并返回新元素的位置
c.erase(val)移除所有值為val的元素,返回移除元素個數

2、set/multiset的幾個特點

set使用平衡二叉樹管理元素(紅黑樹)
set的每個元素值必須唯一,系統會自動將數據排序。他支持插入、刪除、查找等操作,所有的操作都在logN時間之內完成,效率比較高。
set和multiset的區別是:set插入的元素不能相同,而multiset可以相同 操作指令同map

代碼

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> result;//構建nums1的哈希集合,自動去重,//set(集合)是將容器內所有元素都能更具其鍵值自動排序,set元素的鍵值就是實值。set不允許兩個元素有相同的鍵值unordered_set<int> nums1_res(nums1.begin(),nums1.end());for(int i=0;i<nums2.size();i++){//在哈希集合中尋找是否存在nums2[i]的元素,如果是的把這個元素放入result的哈希表中if(nums1_res.find(nums2[i])!=nums1_res.end())result.insert(nums2[i]);	        //在集合中插入元素(自動去重處理)	}return vector<int>(result.begin(),result.end()); }
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377843.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377843.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377843.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

random.next_Java Random next()方法與示例

random.next隨機類的next()方法 (Random Class next() method) next() method is available in java.util package. next()方法在java.util包中可用。 next() method is used to return the pseudo-random number in bits. next()方法用于返回以位為單位的偽隨機數。 next() me…

VS2008下QT開發環境搭建

http://blog.csdn.net/sunnyboycao/article/details/6364444 轉載于:https://www.cnblogs.com/bjfuyumu/p/3321180.html

三、梯度下降法求解最優θ值

一、梯度下降法(GD&#xff0c;Gradient Descent) Ⅰ、得到目標函數J(θ)&#xff0c;求解使得J(θ)最小時的θ值 當然&#xff0c;這里只是取了倆特征而已&#xff0c;實際上會有m個特征維度 通過最小二乘法求目標函數最小值 令偏導為0即可求解出最小的θ值&#xff0c;即…

Delphi中Messagedlg用法

if MessageDlg(Welcome to my Delphi application. Exit now?, mtConfirmation, [mbYes, mbNo], 0) mrYes then begin Close; end;MessageDlg用法 對話框類型&#xff1a;mtwarning——含有感嘆號的警告對話框mterror——含有紅色叉符號的錯誤對話框mtinformation——含有藍…

leetcode 131. 分割回文串 思考分析

題目 給定一個字符串 s&#xff0c;將 s 分割成一些子串&#xff0c;使每個子串都是回文串。 返回 s 所有可能的分割方案。 思考 問題可以分為兩個子問題&#xff1a;1、判斷回文串2、分割數組 判斷回文串 bool isPalindrome_string(string s,int startindex,int endinde…

android淡入淡出動畫_在Android中淡入動畫示例

android淡入淡出動畫1) XML File: activity_main 1)XML文件&#xff1a;activity_main <?xml version"1.0" encoding"utf-8"?><android.support.constraint.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android&…

[慢查優化]聯表查詢注意誰是驅動表 你搞不清楚誰join誰更好時請放手讓mysql自行判定...

寫在前面的話&#xff1a; 不要求每個人一定理解 聯表查詢(join/left join/inner join等)時的mysql運算過程&#xff1b; 不要求每個人一定知道線上&#xff08;現在或未來&#xff09;哪張表數據量大&#xff0c;哪張表數據量小&#xff1b; 但把mysql客戶端&#xff08;如SQL…

四、梯度下降歸一化操作

一、歸一化 Ⅰ什么是歸一化&#xff1f; 答&#xff1a;其實就是把數據歸一到0-1之間&#xff0c;也就是縮放。 常用的歸一化操作是最大最小值歸一化&#xff0c;公式如下&#xff1a; 例如&#xff1a;1&#xff0c;3&#xff0c;5&#xff0c;7&#xff0c;9&#xff0c;10…

[轉帖][強烈推薦]網頁表格(Table/GridView)標題欄和列凍結(跨瀏覽器兼容)

GridView的標題欄、列凍結效果(跨瀏覽器版) 本文來源&#xff1a;http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/02/18/supertable-plugin-for-jquery.aspx 稍早發表了GridView 的標題列凍結效果&#xff0c;足以滿足工作上的需求&#xff0c;不過存在兩個缺點:…

psu是什么電腦配件_PSU的完整形式是什么?

psu是什么電腦配件PSU&#xff1a;電源部門/公共部門事業 (PSU: Power Supply Unit / Public Sector Undertaking) 1)PSU&#xff1a;電源設備 (1) PSU: Power Supply Unit) PSU is an abbreviation of the "Power Supply Unit". PSU是“電源設備”的縮寫 。 It is a…

【C++grammar】斷言與表達式常量

目錄1、常量表達式和constexpr關鍵字2、斷言與C11的靜態斷言1.1. assert : C語言的宏(Macro)&#xff0c;運行時檢測。1.2. assert()依賴于NDEBUG 宏1.3. assert 幫助調試解決邏輯bug &#xff08;部分替代“斷點/單步調試”&#xff09;2.1static_assert (C11的靜態斷言 )2.2.…

一些又用的國內著名期刊

記&#xff1a; 電子學報、電子與信息學報、圖像圖形學報、自動化學報、計算機學報、軟件學報、計算機研究與發展。轉載于:https://www.cnblogs.com/nanyangzp/p/3322244.html

一、Arduino UNO R3將數據上傳至云平臺

一、準備工作 ①ESP12E Shield ②Arduino UNO R3開發板 ③把ESP12E Shield安裝到Arduino UNO R3開發板上 ④登錄物聯網平臺注冊個賬號&#xff0c;到時候需要使用。 ⑤記錄下來你的Uid和key到時候會用到 ⑥創建個設備&#xff0c;用于測試 ⑦beyondyanyu為設備名&…

怎樣做一個快樂的ASP.NET程序員

首先我想解釋一下標題中兩個關鍵字: "快樂", "ASP.NET程序員". 有的人想成為一個"杰出"的程序員, 或者"資深"的程序員, 簡單來說就是"大牛"級的人物 -- 但是本文不是針對此種發展方向不是說我不鼓勵大家朝這方向走, 而是對我…

__eq___C ++'and_eq'關鍵字和示例

__eq__"and_eq" is an inbuilt keyword that has been around since at least C98. It is an alternative to & (Bitwise AND Assignment) operator and it mostly uses for bit manipulations. “ and_eq”是一個內置關鍵字&#xff0c;至少從C 98起就存在。 它…

leetcode 93. 復原IP地址 思考分析

題目 給定一個只包含數字的字符串&#xff0c;復原它并返回所有可能的 IP 地址格式。 有效的 IP 地址 正好由四個整數&#xff08;每個整數位于 0 到 255之間組成&#xff0c;且不能含有前導 0&#xff09;&#xff0c;整數之間用 ‘.’ 分隔。 例如&#xff1a;“0.1.2.201” …

二、通過云平臺反向控制Arduino UNO R3

該篇博文是在第一篇博文(一、Arduino UNO R3將數據上傳至云平臺)的基礎上進行的 一、云平臺發送指令反向控制Arduino UNO R3 ESP12E Shield開關都推到OFF&#xff08;要不然下載會報錯&#xff09;&#xff0c;往Arduino UNO R3開發板上下載下面的代碼 這段代碼進行測試要點&…

使用MSBuild編譯FsLex項目

FsLex FsYacc微軟本身也提供了一個項目模板。但是這個項目模板是lex和yacc文件均包含。我想只適用lex&#xff0c;但是如果每次使用命令行也覺得不夠方便&#xff0c;于是還是研究了一番MsBuild的使用。 使用msbuild hellp.fsproj /v:d 可以查看整個msbuild的流程&#xff0c;非…

Python字符串格式:%vs.format

Often the string formatters in python are referred to as old style and new style. The old-style is % and .format is known as the new style. python中的字符串格式化程序通常被稱為舊樣式和新樣式。 舊樣式為&#xff05; &#xff0c;. format被稱為新樣式。 Simple…

【C++grammar】代理構造、不可變對象、靜態成員

目錄1、Delegation Constructor&#xff08;代理構造&#xff09;1. What is delegating constructor? (什么是代理構造/委托構造)2. Avoiding recursive calls of target constructors (避免遞歸調用目標ctor)3. 委托構造的好處2、不可變對象和類1、如何讓類成為“不可變類”…