我們將給出一個數組作為我們唯一的參數,我們需要返回一個數組,其中包含按升序排列的最大三個值。
問題...
我們將給出一個數組作為我們唯一的參數,我們需要返回一個數組,其中包含按升序排列的最大三個值。有趣的是,我們無法對輸入數組進行排序。
仔細想想
有很多方法可以實現這一結果,但我想堅持使用最基本的方法。
我需要設置一種方法來存儲這三個最高值,并在我迭代輸入時準確跟蹤它們。
如果這是我們追求的單一最高值 - 這將是一個簡單的解決方案。我們只是將每個值與“最高值”變量進行比較,并相應地替換它。但是,我們現在有3個。
讓我們設置函數和三個占位符:
所以在這里,我建立了基本框架。我已經定義了三個指針來存儲三個最高值,設置循環以迭代輸入,然后返回最高值的排序數組。
但現在我需要迭代中的一些過程,這些過程可以有效地用最高值替換這些值,并且以某種方式不會以重復或缺失值結束。
我的解決方案:
我將使用num1,num2和num3維護一個層次結構,并使用我認為的“涓滴”方法,以便在評估每個數組值時,我將首先將其與num1(我的最大值)進行檢查
但是在這一點上,我不能簡單地替換10,因為10可能是我們的三個最高值之一,這就是“涓滴”為我處理的問題:
現在所需要的只是一些邏輯,這些邏輯將根據num2和num3檢查數組值,并重復相同的移位。
完整代碼: