121.買賣股票的最佳時機

来源:https://www.cnblogs.com/cong12586/archive/2020/06/30/13215319.html
-Advertisement-
Play Games

from typing import Listclass Solution: # 錯誤的思路,會超時。 def maxProfit1(self, prices: List[int]) -> int: if len(prices) <= 1:return 0 # 小於等於一天沒法交易買和賣 # 進行雙 ...


from typing import List
class Solution:
# 錯誤的思路,會超時。
def maxProfit1(self, prices: List[int]) -> int:
if len(prices) <= 1:return 0 # 小於等於一天沒法交易買和賣
# 進行雙重遍歷
for index1 in range(len(prices)):
# 最大收益
max_prices = 0
for index2 in range(index1 + 1,len(prices)):
# 第二重遍歷,判斷index1的最大收益
if prices[index1] < prices[index2]:
if prices[index2] - prices[index1] > max_prices:
max_prices = prices[index2] - prices[index1]
# 求出最大收益,
prices[index1] = max_prices
# 返回最大收益
return max(prices)
# 動態規劃的解法
def maxProfit(self, prices: List[int]) -> int:
if len(prices) <= 1:return 0 # 小於等於一天沒法交易買和賣
dp = [0 for _ in range(len(prices))]
min_price = prices[0] #設置最低的價格,總是在價格最低的時候買入
# 進行遍歷,每一天的情況
for index in range(1,len(prices)):
# 判斷今天的價格是否比最小值小,是的話,就改變最小值
if min_price > prices[index]:
min_price = prices[index]
# 今天如果賣出的話,股票的時候是否比前一天的收益要大。
# 今天的收益肯定是要比前幾天的收益要大。,
dp[index] = max(prices[index] - min_price,dp[index - 1])
print(dp)
return dp[-1]
A = Solution()
print(A.maxProfit([7,1,5,3,6,4]))
print(A.maxProfit([7,6,4,3,1]))

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • mac 使用yarn brew install yarn 安裝全局vue-cli全家桶: yarn global add @vue/cli 驗證: node -v npm -v 打開界面 vue ui 本文由博客一文多發平臺 OpenWrite 發佈! ...
  • 前言 網路上的信息很多,有的時候我們需要關鍵字搜索才可以快速方便的找到我們需要的信息。今天我們實現搜索關鍵字爬取堆糖網上相關的美圖,零基礎學會通用爬蟲,當然我們還可以實現多線程爬蟲,加快爬蟲爬取速度 環境: windows pycharm python3 導入模塊 import urllib.par ...
  • 本文源碼:GitHub·點這裡 || GitEE·點這裡 一、服務間隔離 1、分散式結構 分散式系統架構的明顯特點,就是按照業務系統的功能,拆分成各種服務,每個服務下麵都有自己獨立的資料庫,以此降低業務間的耦合度,隔離不同的資料庫保證系統最大的穩定性等。 例如上圖是電商系統中經典的業務場景,訂單-倉 ...
  • clone 並導入源碼 本地啟動 NameServer 本地啟動 Broker 本地運行生產者與消費者代碼 完成上述步驟之後,RocketMQ的源碼環境就搭建完畢了,之後就可以在本地啟動以及收發消息,調試和分析RocketMQ的源碼了。 clone 並導入源碼 在 github 上選擇對應的的代碼 ...
  • 常用類 string類: 常量都是存在jvm,方法區的常量池當中 String str1 = "123"; String str2 = "123"; System.out.println(str1.equals(str2));//true System.out.println(str1 == str ...
  • IO(Input/Output,輸入輸出) 在電腦中,輸入 / 輸出(即 IO)是指信息處理系統(比如電腦)和外部世界(可以是人或其他信息處理系統)的通信。輸入是指系統接收的信號或數據,輸出是指從系統發出的數據或信號。由於程式和運行時數據是在記憶體中駐留,由 CPU 這個超快的計算核心來執行,涉及 ...
  • 查找--插值查找(Java) 博客說明 文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯繫本人刪除,謝謝! 介紹 插值查找演算法類似於二分查找,不同的是插值查找每次從自適應mid處開始查找。 自適應 計算自適應mid int mid = left + (rig ...
  • 前言 編程語言是開發的基礎。有不同的類型和特征,並且開發人員針對不同的場景選擇正確的語言,但是您知道使用哪種語言嗎?中國和世界各地有多少開發人員正在使用它?他們的排名是多少?快來看看您知道多少個列表! 今天,我們為所有人提供了這些著名的編程語言列表的清單!他們不僅教您最常用的語言,還教您等待發現,來 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...