找乙個陣列中第三大的數

2021-08-29 20:31:46 字數 824 閱讀 4425

給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o(n)。

示例 1:

輸入: [3, 2, 1]

輸出: 1

解釋: 第三大的數是 1.

示例 2:

輸入: [1, 2]

輸出: 2

解釋: 第三大的數不存在, 所以返回最大的數 2 .

示例 3:

輸入: [2, 2, 3, 1]

輸出: 1

解釋: 注意,要求返回第三大的數,是指第三大且唯一出現的數。

存在兩個值為2的數,它們都排第二。

class solution 

else if(1 == nsize)

else if(2 == nsize)

int nmax = -2147483648;

int nsec = -2147483648;

int nthird = -2147483648;

bool bres = false;

int count = nsize;

for (int i = 0; i < nsize; i++)

if(nmax == nums[i] || nsec == nums[i] || nthird == nums[i])

if (nmax=3)

return nmax;

}};

第三大的數

第三大的數 給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2解釋 第三大的數不存在,所以返回最大的數 2 示例 3 輸入 2,2,3,1 輸出 1...

第三大的數

給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1 解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2 解釋 第三大的數不存在,所以返回最大的數 2 示例 3 輸入 2,2,3,1 輸出 1 解釋 ...

列表中第三大的數

昨天做了乙份筆試題,題目中的 題拿出來分享一下。題目是這樣的 如果陣列長度大於3,就將陣列中第三大的資料輸出,否則輸出最大值 我的解題思路是這樣想 考慮陣列長度大於3,要求出第三大的數,可以先將陣列進行從大到小進行排序,然後直接取第三個值 解題思路,考慮陣列長度大於3,要求出第三大的數,可以先將陣列...