我下週有總決賽,我正在努力學習舊筆記和家庭作業/考試。在我的第二個作業中,我有一個問題,我錯了,我只是不確定究竟該做什麼。問題如下:尋找A的最大價值[J] + - A [I]
設計高效的算法,採用一組正數「a」,並確定: a。 a [j] + a [i]的最大值,其中j>或= to i。 b。 a [j] - a [i]的最大值,其中j>或= to i。
我不想要實際的代碼,只是一些僞代碼和它的運行時間。
我想會的工作:
找到第一,第二和第三最大值和最小值。 然後做: a。第一個最大a(j)+第二個最大a(i),對於j> = i。 b。第一個最大a(j) - 第一個最小a(i),對於j> = i
然後,如果上述條件失敗,只需重複第二個最大值,最小值。
我不知道爲什麼我不能把頭繞在這裏。我知道j可以等於i,所以我的答案會產生a部分的錯誤結果。對於b部分來說,假設我有一個數組[89 | 90 | 1 | 2 | 3 | 4 | 5],它將變爲90 - 1 = 89,但它應該是5 - 1 = 4。我甚至沒有嘗試考慮到運行時間,因爲那一部分是錯誤的。
任何幫助或提示將是偉大的。謝謝!
當然第一個只是最大元素的兩倍? – Jems