TypeError:unorderable类型:int()> NoneType()

时间:2015-05-10 13:40:58

标签: python python-3.x types type-conversion nonetype

算法问题No.188: Best Time to Buy and Sell Stock IV

假设您有一个数组,其中第i个元素是第i天给定股票的价格。

设计算法以找到最大利润。您最多可以完成k笔交易。

注意:您不得同时参与多笔交易(即,您必须在再次购买前出售股票)。

以下代码是解决方案:

#!/usr/bin/python

class Solution:
    # @param {integer} k
    # @param {integer[]} prices
    # @return {integer}
    def maxProfit(self, k, prices):
        size = len(prices)
        if k >= size/2:
            return self.quickSolve(size, prices)
        profit = [ None ]*(2*k+1)
        profit[0] = 0
        for i in range(size):
            for j in range(min(2*k, i+1), 0, -1):
                profit[j] = max(profit[j], profit[j-1]+prices[i]*[1, -1][j%2]) 
        return max(profit)
    def quickSolve(self, size, prices):
        sum = 0
        for x in range(size-1):
            if prices[x+1] > prices[x]:
                sum += prices[x+1]-prices[x]
        return sum

如果我在Leetcode上提交它,这个解决方案工作正常。

但是,在我的终端中,它会出现以下错误:

 File "best_time_to_buy_and_sell_stock_IV.py", line 26, in maxProfit
    profit[j] = max(profit[j], profit[j-1]+prices[i]*[1, -1][j%2]) 
TypeError: unorderable types: int() > NoneType() 

这可能是因为我使用 python3 无法与 int 进行比较,而 利润 初始化为

但是为什么它正在进行Leetcode测试呢?如何在python3下使其工作?

谢谢〜

0 个答案:

没有答案