概述
假设您有一个数组,其中第i个元素是第i天给定股票的价格.
如果您只被允许完成最多一笔交易(即买入并卖出一股股票),请设计一个算法来查找最大利润.
*例1:
输入:[7,1,5,3,6,4]
输出:5
最大.差异= 6-1 = 5(不是7-1 = 6,因为售价需要大于购买价格).*
*例2:
输入:[7,4,1]
输出:0
在这种情况下,不进行任何交易,即最大利润= 0.*
class Solution(object): def maxProfit(self,prices): """ :type prices: List[int] :rtype: int """ i=Max=0 if not prices: return 0 while i+1 <= len(prices)-1: j=i+1 while j < len(prices): if prices[i] < prices[j]: Max = max(Max,prices[j] - prices[i]) j+=1 j+=1 i+=1 return Max
@H_419_26@然而,系统让我觉得我错了:
Return wrong试过但我无法弄清楚错误在哪里……有人可以帮忙吗?非常感谢!
然而,系统让我觉得我错了:
Return wrong
试过但我无法弄清楚错误在哪里……有人可以帮忙吗?非常感谢!
然而,系统让我觉得我错了:
Return wrong
试过但我无法弄清楚错误在哪里……有人可以帮忙吗?非常感谢!
Max = max(Max,prices[j] - prices[i]) j+=1 j+=1
@H_419_26@它是双j = 1.每当最大值改变时,j增加两次,跳过一些比较.
删除if-branch中的j = 1,您将获得输入向量的正确结果:
Max = max(Max,prices[j] - prices[i]) j+=1
@H_419_26@如果有兴趣,这里有一些改进编码风格的技巧:
>而i 1< = len(价格)-1:加1并使用< =是多余的.而我< len(价格)-1:稍微清洁一点.
> For循环比while循环更容易阅读,并且性能稍好一些.当只有一个计数器需要增加时使用它们:for i in range(len(prices)): for j in range(i,len(prices)): if prices[i] < prices[j]: Max = max(Max,prices[j] - prices[i])
@H_419_26@>在这种情况下无需使用类.
Max = max(Max,prices[j] - prices[i]) j+=1
@H_419_26@如果有兴趣,这里有一些改进编码风格的技巧:
>而i 1< = len(价格)-1:加1并使用< =是多余的.而我< len(价格)-1:稍微清洁一点.
> For循环比while循环更容易阅读,并且性能稍好一些.当只有一个计数器需要增加时使用它们:for i in range(len(prices)): for j in range(i,len(prices)): if prices[i] < prices[j]: Max = max(Max,prices[j] - prices[i])
@H_419_26@>在这种情况下无需使用类.
for i in range(len(prices)): for j in range(i,len(prices)): if prices[i] < prices[j]: Max = max(Max,prices[j] - prices[i])
@H_419_26@>在这种情况下无需使用类.
它是双j = 1.每当最大值改变时,j增加两次,跳过一些比较.
删除if-branch中的j = 1,您将获得输入向量的正确结果:
如果有兴趣,这里有一些改进编码风格的技巧:
>而i 1< = len(价格)-1:加1并使用< =是多余的.而我< len(价格)-1:稍微清洁一点.
> For循环比while循环更容易阅读,并且性能稍好一些.当只有一个计数器需要增加时使用它们:
>在这种情况下无需使用类.
它是双j = 1.每当最大值改变时,j增加两次,跳过一些比较.
删除if-branch中的j = 1,您将获得输入向量的正确结果:
Max = max(Max,prices[j] - prices[i]) j+=1
@H_419_26@如果有兴趣,这里有一些改进编码风格的技巧:
>而i 1< = len(价格)-1:加1并使用< =是多余的.而我< len(价格)-1:稍微清洁一点.
> For循环比while循环更容易阅读,并且性能稍好一些.当只有一个计数器需要增加时使用它们:for i in range(len(prices)): for j in range(i,len(prices)): if prices[i] < prices[j]: Max = max(Max,prices[j] - prices[i])
@H_419_26@>在这种情况下无需使用类.
for i in range(len(prices)): for j in range(i,len(prices)): if prices[i] < prices[j]: Max = max(Max,prices[j] - prices[i])
@H_419_26@>在这种情况下无需使用类.
如果有兴趣,这里有一些改进编码风格的技巧:
>而i 1< = len(价格)-1:加1并使用< =是多余的.而我< len(价格)-1:稍微清洁一点.
> For循环比while循环更容易阅读,并且性能稍好一些.当只有一个计数器需要增加时使用它们:
>在这种情况下无需使用类.
如果有兴趣,这里有一些改进编码风格的技巧:
>而i 1< = len(价格)-1:加1并使用< =是多余的.而我< len(价格)-1:稍微清洁一点.
> For循环比while循环更容易阅读,并且性能稍好一些.当只有一个计数器需要增加时使用它们:
for i in range(len(prices)): for j in range(i,len(prices)): if prices[i] < prices[j]: Max = max(Max,prices[j] - prices[i])
@H_419_26@>在这种情况下无需使用类.
>在这种情况下无需使用类.
>在这种情况下无需使用类.
总结
以上是编程之家为你收集整理的python代码在数组中不起作用全部内容,希望文章能够帮你解决python代码在数组中不起作用所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧