leetcode Third Maximum Number

题目

问题描述:求解第三大的数。

解题思路,先对数组进行排序。从后往前遍历,若当前字符与后一个字符不一致,则标记数加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;
    }
};

猜你喜欢

转载自blog.csdn.net/Exaggeration08/article/details/85256611