我们将创建一个Python程序,用于在以下教程中估算最佳的买入和卖出股票时间。

所以,让我们开始吧。

理解Python项目

假设我们有一个数组X,其中X[i]表示第n天提供的股票价格。我们需要计算最大的利润。我们最多可以执行一次交易(交易被认为是买入和卖出股票)。但是,我们必须记住,我们不可以同时进行多次交易。因此,在买新股之前必须卖出股票。

假设数组为X = [7, 1, 5, 3, 6, 4];那么输出将是5。正如我们所看到的,如果我们在第2天(索引1)购买,那么它将以1作为购买价格。然后,如果我们在第5天卖出,我们将获得6 - 1 = 5的利润。

让我们使用以下步骤来解决这个问题

步骤1: 创建两个数组LminRmax,大小与数组X相同,并用0填充它们。

步骤2: Lmin[0] = X[0]

步骤3: 对于n在范围1X的长度-1,Lmin[n] = Lmin[n - 1]和X[n]的最小值

步骤4: Rmax[i - 1] = X[i - 1]

步骤5: 对于n在数组长度-1到1Rmax[n] = Rmax[n + 1]和X[n]的最大值

步骤6: 设置result = 0

步骤7: 对于n在范围0X的长度-1,result = result和Rmax[n + 1] - Lmin[n]的最大值

步骤8: 返回result

现在,让我们在下面的编码部分中理解这些步骤的实现:

项目代码

现在,让我们考虑以下Python程序,以计算买卖股票的最佳时间。

文件:stocksProgram.py

# defining a class  
class Soln(object):  
    # defining the function to calculate the maximum profit  
    def max_Profit(self, price):  
        """  
        :type prices: List[int]  
        :rtype: int  
        """  
        # using the if conditional  
        if not price:  
            return 0  
        # creating two arrays  
        Lmin, Rmax = [0 for n in range(len(price))], [0 for n in range(len(price))]  
        Lmin[0] = price[0]  
        # using the for-loop  
        for n in range(1, len(price)):  
            Lmin[n] = min(Lmin[n - 1], price[n])  
        # printing the Lmin elements  
        print(Lmin)  
        Rmax[-1] = price[-1]  
        # using the for-loop  
        for n in range(len(price) - 2, -1, -1):  
            Rmax[n] = max(Rmax[n + 1], price[n])  
        # printing the Rmax elements  
        print(Rmax)  
        # assigning initial value of result  
        res = 0  
        # using the for-loop  
        for n in range(len(price) - 1):  
            res = max(res, Rmax[n + 1] - Lmin[n])  
        return res  
# instantiating the class  
obj_1 = Soln()  
# printing the maximum profit for the provided Array  
print(obj_1.max_Profit([7, 2, 5, 8, 6, 3, 1, 4, 5, 4, 7]))  

输入:

price = [7, 2, 5, 8, 6, 3, 1, 4, 5, 4, 7]  

输出:

[7, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1]
[8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7]
6

解释

在上面的代码片段中,我们定义了一个类。然后在类中定义了一个名为max_profit的函数,用于计算给定数组的最大利润。我们创建了两个相同大小的数组LminRmax,它们的元素都是0。然后,我们将Lmin数组的第一个元素的值分配给给定数组的第一个元素。我们使用for循环迭代数组的值到Lmin数组,并为用户打印它们。然后,我们对Rmax数组进行了类似的操作,并为用户打印其元素。接下来,我们将res变量的初始值分配为0。然后,我们再次使用for循环来估算最大利润。最后,我们实例化了类,并为用户打印了给定数组的最大利润。在上面的程序中,最大利润为6

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程