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