leetcode 第三大的數

2021-10-05 04:35:31 字數 1402 閱讀 7678

題目描述:

未完成原因:特例很多,情況考慮不周全

如果有相同的數字出現,不能妥善處理

正解

int

thirdmax

(int

* nums,

int numssize)

else

cnt++;}

if(cnt==

2&&nums[i]

!=a&&nums[i]

!=b)

else

if(nums[i]

>b)

else

cnt++;}

}if(cnt<3)

return a;

while

(ielse

if(nums[i]

>b)

else

if(nums[i]

>c)

i++;}

return c;

}

對前三個數字單獨特殊處理,只有不一樣的時候才會對cnt++,如果最後cnt<3,證明陣列裡的不同的數字只有三個。

用python寫更簡潔:

set和list可以直接強制轉換

不需要逐元素新增到列表裡

set多用於刪除重複元素,求交集和並集,但是set無序,可用列表排序,也可直接sorted(set).

省去轉換為list的時間直接用set排序。

leetcode 第三大的數

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

LeetCode 第三大的數

q 給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是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...