Problem
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).
ExampleExample 1:
Input: [3, 2, 1] Output: 1
Explanation: The third maximum is 1.
Example 2:
Input: [1, 2] Output: 2
Explanation: The third maximum does not exist, so the maximum (2) is returned instead.
Example 3:
Input: [2, 2, 3, 1] Output: 1
Explanation: Note that the third maximum here means the third maximum distinct number.
Both numbers with value 2 are both considered as second maximum.
class Solution { public int thirdMax(int[] nums) { if (nums == null || nums.length == 0) return -1; int first = Integer.MIN_VALUE, second = first, third = first; boolean firstExists = false, secondExists = false, thirdExists = false; for (int num: nums) { if (num >= first) { if (!firstExists) { first = num; firstExists = true; } else if (num == first) { continue; } else { if (secondExists) { third = second; thirdExists = true; } else { secondExists = true; } second = first; first = num; } } else if (num >= second) { if (!secondExists) { second = num; secondExists = true; } else if (num == second) { continue; } else { if (!thirdExists) { thirdExists = true; } third = second; second = num; } } else if (num >= third) { thirdExists = true; third = num; } } System.out.println(first); System.out.println(second); System.out.println(third); return thirdExists == false ? first : third; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76771.html
摘要:題目詳情給定一個輸入的數組,我們需要找出這個數組中第三大的數,而且時間復雜度必須是如果不存在第三大的數,則返回最大的數。思路因為時間復雜度為,所以預排序是不可以的我們一定要在一次遍歷結束后就找到這個第三大的值。 題目詳情 Given a non-empty array of integers, return the third maximum number in this array....
摘要:前言從開始寫相關的博客到現在也蠻多篇了。而且當時也沒有按順序寫現在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個索引嘻嘻。順序整理更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新 前言 從開始寫leetcode相關的博客到現在也蠻多篇了。而且當時也沒有按順序寫~現在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個索引嘻嘻。 順序整理 1~50 1...
摘要:在線網站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學習。 這篇文章記錄我練習的 LeetCode 題目,語言 JavaScript。 在線網站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...
摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經到題,所以后面會調整自己,在刷算法與數據結構的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區別...
摘要:算法復雜度思路貪心算法,先能組成的數的組合,然后針對每一個組合,考慮每一個數組能夠組成的最大的位或者位數。對不同組合生成的最大數進行比較,得到所能得到的最大的值。代碼的方法去找這個數。 LeetCode[321] Create Maximum Number Given two arrays of length m and n with digits 0-9 representing ...
閱讀 3478·2023-04-26 02:00
閱讀 3078·2021-11-22 13:54
閱讀 1699·2021-08-03 14:03
閱讀 709·2019-08-30 15:52
閱讀 3085·2019-08-29 12:30
閱讀 2420·2019-08-26 13:35
閱讀 3364·2019-08-26 13:25
閱讀 3001·2019-08-26 11:39