#15240: __思路


qqrainbow (愛蜜莉雅)


數列中最大差值=(大-小),且大的位置<小的位置

 

宣告一個變數max_ans <-這是答案

 

再宣告一個變數Max <-這是目前數列中找到的最大數字

 

在a[i]輸入時不斷求其與Max的差,當max_ans < Max-arr[i]時,更新max_ans。

 

但如果a[i] > Max,上述步驟就不用,但要更新Max

 

最後max_ans就是解答。

#17449: Re:思路


giant0620 (BlenderWang)


數列中最大差值=(大-小),且大的位置<小的位置

 

宣告一個變數max_ans <-這是答案

 

再宣告一個變數Max <-這是目前數列中找到的最大數字

 

在a[i]輸入時不斷求其與Max的差,當max_ans < Max-arr[i]時,更新max_ans。

 

但如果a[i] > Max,上述步驟就不用,但要更新Max

 

最後max_ans就是解答。



有一點要注意一下

題目只有說答案「盡量大」,但沒有說答案不能是負的

雖然說剛剛試了一下,測資好像沒有,但是只要輸入剛好是遞增數列,就會出現答案是0或負數的情況(因為前面的數字一定小於或等於後面的數字)

所以如果要讓程式是「正確的」而不只是「會過測資」的話,還要能處理這種情況

#17453: Re:思路


qqrainbow (愛蜜莉雅)


請問你max_ans初始值設多少?

如果設-INF就不會有這個問題了。

#17459: Re:思路


asnewchien@gmail.com (david)


請問你max_ans初始值設多少?

如果設-INF就不會有這個問題了。



max - min

怎會有負的

#17460: Re:思路


qqrainbow (愛蜜莉雅)


 max(a[i] - a[j]) 還必須保證 i < j,如果是嚴格遞增數列的話,那就會有負數出現。

 Ex: 1 2 3 4 5     max = -1

#17461: Re:思路


asnewchien@gmail.com (david)


 max(a[i] - a[j]) 還必須保證 i < j,如果是嚴格遞增數列的話,那就會有負數出現。

 Ex: 1 2 3 4 5     max = -1

那我寫錯了。


#17462: Re:思路


giant0620 (BlenderWang)


請問你max_ans初始值設多少?

如果設-INF就不會有這個問題了。



在a[i]輸入時不斷求其與Max的差,當max_ans < Max-arr[i]時,更新max_ans。

但如果a[i] > Max,上述步驟就不用,但要更新Max

因為你的敘述是這樣寫的

就算max_ans設整數最小值

只要第i個數比MAX大,就不會求其與MAX的差,而是會更新MAX

我只是指出這點

當然如果去掉

上述步驟就不用

這句話,就沒差了