破案了,楼下老哥举出了反例,的确是代码有问题,不能解决诸如3 2 1 4这类输入。
 # -*- coding=utf-8 -*-
class Solution():
    """魔法杖最高能量
    """
    def maxMagicStickPower(self, n, m, powers):
        """魔法仗能量由最小的能量值的魔法石决定,那么每次找最小和最小邻居中最小融合
        Args:
            n (int): 魔法石个数
            m (int): 可以融合魔法石的次数
            powers (list): 魔法石能量数组
        """
        if m == 0:
            return min(powers)
        for i in range(m):
            if len(powers) == 1:
                return powers[0]
            minPowerIndex = powers.index(min(powers))
            if minPowerIndex == 0:
                powers[minPowerIndex:minPowerIndex+2] = [powers[minPowerIndex]
                                                         + powers[minPowerIndex+1]]
            elif minPowerIndex == len(powers)-1:
                powers[minPowerIndex-1:minPowerIndex+1] = [powers[minPowerIndex-1]
                                                           + powers[minPowerIndex]]
            else:
                if powers[minPowerIndex+1] > powers[minPowerIndex-1]:
                    powers[minPowerIndex-1:minPowerIndex+1] = [powers[minPowerIndex-1]
                                                               + powers[minPowerIndex]]
                else:
                    powers[minPowerIndex:minPowerIndex+2] = [powers[minPowerIndex]
                                                             + powers[minPowerIndex+1]]
        return min(powers)
def main():
    n, m = map(int, input().split())
    powers = list(map(int, input().split()))
    ex = Solution()
    print(ex.maxMagicStickPower(n, m, powers))
if __name__ == "__main__":
    main()
 #网易##滴滴#