leetcode(3)——414. 第三大的数(C++中的 set,::作用符号,迭代器),628 三个数的最大乘积(sort函数的用法)
文章目錄
- 前言
- 414
- 程序
- 疑惑
- set
- ::在c++中什么意思
- 一、作用域符號(hào):
- 二、全局作用域符號(hào):
- 三、作用域分解運(yùn)算符:
- C++ 迭代器
- 628
- 程序
- 疑惑
- sort函數(shù)
前言
大佬的程序,邊刷邊總結(jié)邊學(xué)語(yǔ)言。
題目414
題目628
414
程序
class Solution { public:int thirdMax(vector<int>& nums) {set<int> top3;for (int num : nums) {top3.insert(num);if (top3.size() > 3)top3.erase(top3.begin());}return top3.size() == 3 ? *top3.begin() : *top3.rbegin();} };set.insert 插入數(shù)據(jù)
set.size set中元素的個(gè)數(shù)
set.begin 第一個(gè)元素
set.rbegin 最后一個(gè)元素
疑惑
set
C++中的set,采用的是一種非常高效的平衡檢索二叉樹(shù):紅黑樹(shù),也稱(chēng)為RB樹(shù)(Red-Black Tree)。
::在c++中什么意思
百科大佬傳送門(mén)
一、作用域符號(hào):
1、A::member就表示類(lèi)A中的成員member。
2、B::member就表示類(lèi)B中的成員member。
二、全局作用域符號(hào):
全局作用域符號(hào):當(dāng)全局變量在局部函數(shù)中與其中某個(gè)變量重名,那么就可以用::來(lái)區(qū)分,例如:
三、作用域分解運(yùn)算符:
比如聲明了一個(gè)類(lèi)A,類(lèi)A里聲明了一個(gè)成員函數(shù)voidf(),但沒(méi)有在類(lèi)的聲明里給出f的定義,那么在類(lèi)外定義f時(shí),就要寫(xiě)成voidA::f(),表示這個(gè)f()函數(shù)是類(lèi)A的成員函數(shù)。例如:
C++ 迭代器
vector::iterator iter;這條語(yǔ)句定義了一個(gè)名為iter的變量,它的數(shù)據(jù)類(lèi)型是由vector定義的iterator類(lèi)型。
set<int> iset(10,1);for (set<int>::iterator iter = iset.begin(); iter != iset.end(); ++iter){cout<< *iter ; //使用 * 訪(fǎng)問(wèn)迭代器所指向的元素}628
程序
思路:可能組成最大乘積的三個(gè)數(shù)有兩種可能??赡芤?#xff1a;最大的三個(gè)正數(shù)的乘積;可能二:最大的正數(shù)與最小的兩個(gè)負(fù)數(shù)的乘積。因此遍歷數(shù)組,找出這5個(gè)數(shù),比較可能的兩個(gè)結(jié)果,較大的那個(gè)就是我們要返回的。
class Solution{ public:int maximumProduct(vector<int>& nums){int n = nums.size();sort(nums.begin(), nums.end());int res1 = nums[n - 1] * nums[n - 2] * nums[n - 3];int res2 = nums[0] * nums[1] * nums[n - 1];return max(res1, res2);} }疑惑
sort函數(shù)
sort函數(shù)的參數(shù)是地址
總結(jié)
以上是生活随笔為你收集整理的leetcode(3)——414. 第三大的数(C++中的 set,::作用符号,迭代器),628 三个数的最大乘积(sort函数的用法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: leetcode(2)495——提莫攻击
- 下一篇: leetcode(3)——697. 数组