问题描述:求解第三大的数。
解题思路,先对数组进行排序。从后往前遍历,若当前字符与后一个字符不一致,则标记数加1,当 标记数为3时跳出循环,若当前标记数不为3并且数组遍历完成,则取最大的数。
源码附上:
class Solution {
public:
int thirdMax(vector<int>& nums) {
sort(nums.begin(),nums.end());
int length=nums.size();
int flag=1;
int result;
int i;
for(i=length-1;i>=0;i--)
{
if(i<length-1&&(nums[i]!=nums[i+1]))
{
flag++;
}
if(flag==3)
{
result=nums[i];
break;
}
}
if(i==-1&&flag!=3)
{
result=nums[length-1];
}
return result;
}
};