#15240: __思路


qqrainbow (愛蜜莉雅)

學校 : 國立嘉義高級中學
編號 : 83319
來源 : [36.238.5.68]
最後登入時間 :
2023-04-26 23:31:35

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

 

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

 

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

 

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

 

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

 

最後max_ans就是解答。

#17449: Re:思路


giant0620 (BlenderWang)

學校 : 國立彰化師範大學
編號 : 61100
來源 : [140.113.207.98]
最後登入時間 :
2022-07-25 14:26:46

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

 

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

 

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

 

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

 

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

 

最後max_ans就是解答。



有一點要注意一下

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

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

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

#17453: Re:思路


qqrainbow (愛蜜莉雅)

學校 : 國立嘉義高級中學
編號 : 83319
來源 : [36.238.5.68]
最後登入時間 :
2023-04-26 23:31:35

請問你max_ans初始值設多少?

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

#17459: Re:思路


asnewchien@gmail.com (david)

學校 : 南投縣立旭光高級中學
編號 : 68108
來源 : [114.42.176.221]
最後登入時間 :
2025-10-04 22:52:03

請問你max_ans初始值設多少?

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



max - min

怎會有負的

#17460: Re:思路


qqrainbow (愛蜜莉雅)

學校 : 國立嘉義高級中學
編號 : 83319
來源 : [36.238.5.68]
最後登入時間 :
2023-04-26 23:31:35

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

 Ex: 1 2 3 4 5     max = -1

#17461: Re:思路


asnewchien@gmail.com (david)

學校 : 南投縣立旭光高級中學
編號 : 68108
來源 : [114.42.176.221]
最後登入時間 :
2025-10-04 22:52:03

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

 Ex: 1 2 3 4 5     max = -1

那我寫錯了。


#17462: Re:思路


giant0620 (BlenderWang)

學校 : 國立彰化師範大學
編號 : 61100
來源 : [140.113.207.98]
最後登入時間 :
2022-07-25 14:26:46

請問你max_ans初始值設多少?

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



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

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

因為你的敘述是這樣寫的

就算max_ans設整數最小值

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

我只是指出這點

當然如果去掉

上述步驟就不用

這句話,就沒差了