Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで株を売買することで得られる最大の利益を見つけるためのプログラム?


会社の株価の時系列のリストがあるとすると、株式の売買から得られる最大の利益を見つける必要があります。売る前に買わなければならず、株を売ってから1日待ってから再度買う必要があります。

したがって、入力がprices =[2、6、9、4、11]の場合、出力は11になります。これは、2で購入し、6で販売し、1日待ってから、4で購入します。その後、11で販売します。

これを解決するには、次の手順に従います。

  • s:=0

  • b:=-infinity

  • 0から価格のサイズまでの範囲のiについては、実行してください

    • temp:=b

    • b:=bの最大値と(s-価格[i])

    • iがゼロ以外の場合、

      • s:=sの最大値と(temp + price [i-1])

  • sと(b +価格の最後の要素)の最大値を返します

理解を深めるために、次の実装を見てみましょう。

class Solution:
   def solve(self, prices):
      s = 0
      b = float("-inf")
      for i in range(len(prices)):
         temp = b
         b = max(b, s - prices[i])
         if i:
            s = max(s, temp + prices[i - 1])
      return max(s, b + prices[-1])

ob = Solution()
prices = [2, 6, 9, 4, 11]
print(ob.solve(prices))

入力

[2, 6, 9, 4, 11]

出力

11

  1. Pythonで一度株式市場で購入することで得られる最大の利益を見つけるためのプログラム

    会社の株価を時系列で表す価格のリストがあるとすると、その株を1回だけ売買することで得られる最大の利益を見つける必要があります。販売する前に購入する必要があることを覚えておく必要があります。 したがって、入力が価格=[10、12、9、6、8、12]の場合、出力は6になります。これは、6で購入し、12で販売できるためです。 これを解決するには、次の手順に従います- max_profit:=0 min_stock:=無限大 価格の各価格について、 max_profit:=max_profitの最大値と(price --min_stock) min_stock:=min_stockと価

  2. リスト内の最大要素と最小要素の位置を見つけるPythonプログラム?

    Pythonでは、最大要素、最小要素、およびそれらの位置も非常に簡単に見つけることができます。 Pythonはさまざまな組み込み関数を提供します。 min()は配列の最小値を見つけるために使用され、max()は配列の最大値を見つけるために使用されます。 index()は、要素のインデックスを見つけるために使用されます。 アルゴリズム maxminposition(A, n) /* A is a user input list and n is the size of the list.*/ Step 1: use inbuilt function for finding the positi