本文共 907 字,大约阅读时间需要 3 分钟。
题目:
Given a non-empty array of integers, return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).
Example 1:
Input: [3, 2, 1]Output: 1Explanation: The third maximum is 1.
Example 2:
Input: [1, 2]Output: 2Explanation: The third maximum does not exist, so the maximum (2) is returned instead.
Example 3:
Input: [2, 2, 3, 1]Output: 1Explanation: Note that the third maximum here means the third maximum distinct number.Both numbers with value 2 are both considered as second maximum.
思路:给定一个vector,找到vector中第三大的不重复的数,若不存在,则返回最大的数。
代码:
class Solution {public: int thirdMax(vector & nums) { vector sort;//保存nums排序后的vector sort.push_back(nums[0]);//存入nums第一个数 for (int i = 1; inums[i]){//若nums中的数比sort[j]小,则将nums存入当前位置之前,跳出循环 sort.insert(sort.begin() + j, nums[i]); break; } else if (sort[j]
转载地址:http://znmii.baihongyu.com/