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

Pythonで株式IIを売買するのに最適な時期


配列Aがあるとします。ここで、A[i]はi日目の特定の株式の価格を示しています。最大の利益を見つけなければなりません。必要な数のトランザクションを完了することができます。 (取引とは、株式を売買することを意味します)。ただし、同時に複数の取引を行うことはできませんのでご注意ください。そのため、新しい株を購入する前に株を売る必要があります。

配列がA=[7、1、5、3、6、4]のようであるとすると、結果は7になります。ご覧のとおり、2日目(インデックス1)に購入すると、1は次のようになります。購入価格。次に、3日目に販売すると、利益は5 – 1 =4になります。次に4日目に購入し、5日目に販売すると、利益は6 – 3=3になります

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

  • 回答=0
  • 0からn– 1の範囲のiの場合(nはAの要素の数)-
    • A [i] – A [i – 1]> 0の場合、
      • 回答:=回答+ A [i] – A [i – 1]
  • 回答を返す

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

class Solution(object):
   def maxProfit(self, prices):
      """
      :type prices: List[int]
      :rtype: int
      """
      ans = 0
      for i in range(1,len(prices)):
         if prices[i] - prices[i-1] >0:
            ans+=(prices[i] - prices[i-1])
      return ans
ob1 = Solution()
print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

入力

print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

出力

13

  1. Pythonでのベクトル化

    この記事では、Python3.xを使用した実装に関連するベクトル化とさまざまな手法について学習します。またはそれ以前。 ベクトル化とは何ですか? ベクトル化は、ループを使用せずに配列を実装する手法です。代わりに関数を使用すると、コードの実行時間と実行時間を効率的に最小化するのに役立ちます。さまざまな演算が、ベクトルの内積などの配列ではなく、ベクトルに対して実行されています。これは、単一の出力を生成するため、スカラー積とも呼ばれます。外部積は、ベクトルの(長さXの長さ)に等しい次元の二乗行列になります。要素同じインデックスの要素と行列の次元を積む賢明な乗算は変更されません。 内積/内積

  2. 2022 年に売買すべき Craigslist のような 10 のサイト

    Craigslist のようなウェブサイトは、Craigslist がプラットフォームから個人広告セクションを削除し、他の広告を開いているため、大きな需要があります. Craigslist は、クリックするだけで、仕事、必要なアイテム、住宅、コミュニティ サービスなど、必要なものを見つけるのに最適な選択肢です。 それでも、同じ古いインターフェースと、個人的な関係に基づいて広告を見つけることができないため、人々は Craigslist の代替品を探すようになりました.これが、不足している懸念をおそらく解決する Craigslist のような最高のサイトを提供するためにここにいる理由です. A