414. 第三大的数
首先,分享一下自己的笨方法:
先排序,通过关联容器set去重,获取不重复元素的个数,然后进行判断
class Solution {
public:
int thirdMax(vector& nums) {
setst;
sort(nums.begin(),nums.end());
int n=nums.size();
for(auto& it:nums)
st.insert(it);
int diff=st.size()-2;
if(st.size()<3) return nums[n-1];
if(st.size()==3) return nums[0];
if(st.size()>3)
{
int cnt=0;
for(std::set::iterator it=st.begin();it!=st.end();++it)
{
cnt++;
if(cnt==diff)
{
return *it;
}
}
}
return -1;
}
};
官方题解:
先进行升序排列,去重
class Solution {
public:
int thirdMax(vector& nums) {
//升序排序
sort(nums.begin(),nums.end(),greater());
//去重+判断
int diff=1;
for(int i=1;i 


