2024年1月15日 星期一

h206. 強者就是要戰,但......什麼才是強者呢?

         這題是很好的遞迴問題,每次遞迴的時候都要帶入此次遞迴的左右邊界、及這次是要取區間最大還是取區間最小的flag。

        完整程式如下:

def t(l , r , isBig):
    if l == r-1:
        return d[l]
    m = (l+r)//2
    if isBig: 
        g = max(t(l,m,0) , t(m,r,0))
    else:
        g = min(t(l,m,1) , t(m,r,1))
    return g
        
n = int(input())
d = [int(i) for i in input().split()]

print(t(0,n,1))

沒有留言:

張貼留言

o079. 4. 最佳選擇

 題目描述: 給一個長度為 n 的正整數序列 a1,a2...an ,你可以執行多次操作 (包含 0 次),每次操作只能選擇這個序列的第一個或最後一個數字,再將這個數字從序列中刪除並自己搜集起來。 求滿足總和不超過 k 且搜集的數字奇數和偶數個數相同的條件下,所能搜集的數字總和最...