Third Maximum Number

来源:互联网 发布:versions 1.7 for mac 编辑:程序博客网 时间:2024/06/02 03:35

一开始想到求第k大的数的解法,其实并不需要那么复杂。
设置三个数:max1,max2,max3,分别代表第1大,第2大,第3大的数,遍历一遍就可以了。
注意:初始值都设为LONG_MIN。

int thirdMax(vector<int>& nums) {        long max1 = LONG_MIN,max2=LONG_MIN,max3=LONG_MIN;        for(vector<int>::iterator it= nums.begin();it != nums.end(); ++it)        {            int tmp = *it;            if(tmp > max1)            {                max3 = max2;                max2 = max1;                max1 = tmp;            }            else if(tmp > max2 && tmp < max1)            {                max3 = max2;                max2 = tmp;            }            else if(tmp > max3 && tmp < max2)            {                max3 = tmp;            }        }        if(max3 == LONG_MIN || max2 == LONG_MIN)        {            return max1;        }        return max3;    }
0 0
原创粉丝点击