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