` ````
```

Loading Question ...

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.

Seen this question in a real interview before?

Yes

No

When did you encounter this question?

last week

last month

last 3 month

last 6 month

more than 6 months

other

Which company?

Adobe

Aetion

Airbnb

Alibaba

Amazon

Apple

Baidu

Bloomberg

Cloudera

Coursera

Cryptic Studios

Dropbox

eBay

Epic Systems

Expedia

Facebook

Fallible

Games

Gilt Groupe

GoDaddy

Goo

Google

Hedvig

Houzz

Hulu

Indeed

Intuit

IXL

LinkedIn

LiveRamp

Lyft

MAQ Software

Mathworks

Microsoft

NetEase

Netsuite

Palantir

Palantir Technologies

Pinterest

Pocket Gems

Poynt

Pure

Pure Storage

Rackspace

Riot

Riot Games

Samsung

Snapchat

Square

Storage

Tencent

TinyCo

Twitter

Two Sigma

Uber

Valve

WAP

Works Applications

Yahoo

Yahoo!

Yelp

Zappos

Zenefits

How can we help you?