LEETCODE 414第三大的數

2021-10-03 15:05:23 字數 1012 閱讀 4476

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

o(n)。

1. 排序後返回

int thirdmax(vector& nums)
2. 使用set

int thirdmax(vector& nums) 

else

}//維護規模為3的set

int thirdmax(vector& nums)

if(hash_set.size()<3)

return *(hash_set.rbegin());

else

return *(hash_set.begin());

}

3. 維護三個數字

int thirdmax(vector& nums)  else if (n > second && n < first)  else if (n > third && n < second) 

}return third == long_min ? first : third;

}

4. 使用指標

int thirdmax(vector& nums) 

else if (nums[i] == *max1)

continue;

else if (max2 == nullptr || nums[i]>*max2)

else if (nums[i] == *max2)

continue;

else if (max3 == nullptr || nums[i]>*max3)

max3 = &nums[i];

}if (max3 == nullptr)

return *max1;

return *max3;

}

LeetCode 414 第三大的數

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

LeetCode 414 第三大的數

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

LeetCode 414 第三大的數

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