[leetcode hot 150]第一百二十二題,買賣股票的最佳時機Ⅱ

題目:

給你一個整數數組?prices?,其中?prices[i]?表示某支股票第?i?天的價格。

在每一天,你可以決定是否購買和/或出售股票。你在任何時候?最多?只能持有?一股?股票。你也可以先購買,然后在?同一天?出售。

返回?你能獲得的?最大?利潤?。

  1. 初始化:
    • 如果數組長度小于等于1,直接返回0(無法獲利)
    • hold = -prices:第一天買入股票,利潤為負
    • notHold = 0:第一天不買股票,利潤為0
  2. 遍歷每一天(從第二天開始):
    • 更新?hold[i]
      hold[i] = Math.max(hold[i - 1], notHold[i - 1] - prices[i])
      意味著今天持有股票的最大利潤可能來自:
      • 昨天就持有股票(hold[i - 1]
      • 昨天不持有,今天買入(notHold[i - 1] - prices[i]
    • 更新?notHold[i]
      notHold[i] = Math.max(notHold[i - 1], hold[i - 1] + prices[i])
      意味著今天不持有股票的最大利潤可能來自:
      • 昨天就不持有股票(notHold[i - 1]
      • 昨天持有,今天賣出(hold[i - 1] + prices[i]
public class no_122 {public static void main(String[] args) {int[] price = {1, 2, 3, 4, 5};System.out.println(maxProfit(price));}public static int maxProfit(int[] prices) {int n = prices.length;if (n <= 1) return 0;int[] hold = new int[n];int[] notHold = new int[n];hold[0] = -prices[0];notHold[0] = 0;for (int i = 1; i < n; i++) {//  今天持有股票的最大利潤 = max(昨天持有,昨天不持有今天買入)hold[i] = Math.max(hold[i - 1], notHold[i - 1] - prices[i]);//  今天不持有股票的最大利潤 = max(昨天就不持有, 昨天持有今天賣出)notHold[i] = Math.max(notHold[i - 1], hold[i - 1] + prices[i]);}return notHold[n - 1];}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37945.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37945.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37945.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++】初識C++(一)

一.什么是C C語言是結構化和模塊化的語言&#xff0c;適合處理較小規模的程序。對于復雜的問題&#xff0c;規模較大的程序&#xff0c;需要高度 的抽象和建模時&#xff0c;C語言則不合適。為了解決軟件危機&#xff0c; 20世紀80年代&#xff0c; 計算機界提出了OOP(object o…

圖形處理單元(GPU)在現代計算中的應用與挑戰(研究論文框架)

摘要:隨著高性能計算需求的日益增長,圖形處理單元(GPU)已從專業的圖形渲染處理器轉變為具有高性能并行處理能力的多功能計算平臺。本文將探討GPU的核心優勢、編程模型、在不同領域的應用以及面臨的挑戰和限制。此外,還將討論GPU技術的未來發展趨勢和潛在的研究機會。 關鍵…

mongodb 查詢語句學習筆記

基礎查詢 正則查詢 {status: A,$or: [{ qty: { $lt: 30 } }, { item: { $regex: ^p } }] }AND 查詢 { "size.h": { $lt: 15 }, "size.uom": "in", status: "D" }OR 查詢 { $or: [ { status: "A" }, { qty: { $lt: 30 } …

2024年機動車簽字授權人題庫,助你沖刺!絕對不會讓你后悔!

61.&#xff08;&#xff09;使汽車按駕駛人選定的方向行駛。 A.傳動系統 B.行駛系統 C.轉向系統 D.制動系統 答案&#xff1a;C 62.&#xff08;&#xff09;使汽車各總成及部件安裝在適當的位置&#xff0c;對全車起支承作用以保證汽車正常行駛。 A.傳動系統 B.行駛系…

01.計算機圖形學概述

01.計算機圖形學概述 從技術的角度上看&#xff0c;什么是一個好的畫面&#xff1f; 直接看這個畫面是不是足夠亮&#xff0c;這體現了渲染中的一個技術叫全局光照。 應用范圍 游戲&#xff08; Video Games&#xff09;電影/特效&#xff08; Movies&#xff09;動漫/動畫&…

如何讓Linux系統變得更安全?

本文嘗試從linux安全加固、漏洞利用及防御措施、安全意識三個方面思考如何讓linux系統變得更加安全. 一、linux常見安全加固操作 對Linux系統進行詳細的安全加固操作,可以從多個方面進行,包括系統更新和補丁管理、用戶和權限管理、網絡安全配置、文件和系統安全、日志和審計…

Qt代碼分析

要使用代碼分析工具&#xff0c;請在Analyze菜單或(Start Debugging of Startup Project)按鈕的下拉菜單中選擇它。當您處于調試模式時&#xff0c;您可以通過在調試器工具欄上的菜單中選擇工具來切換工具。 您可以將調試模式下的視圖拖放到屏幕上的新位置。意見的大小和立場將…

c++關鍵字default,delete

文章目錄 概述defaultdelete 小結 概述 在看一些開源項目的源碼的時候&#xff0c;經常會看到default和delete。這2個關鍵字究竟什么意思呢&#xff1f;這篇文章就來一點一點拆解下。 default 默認構造函數、拷貝構造函數、移動構造函數、拷貝賦值運算符、移動賦值運算符和析…

HDFS學習

3.5 HDFS存儲原理 3.5.1 冗余數據保存 作為一個分布式文件系統&#xff0c;為了保證系統的容錯性和可用性&#xff0c;HDFS采用了多副本方式對數據進行冗余存儲&#xff0c;通常一個數據塊的多個副本會被分布到不同的數據節點上。 如圖所示&#xff0c;數據塊1被分別存放到…

石油化工廠為什么要用專業防爆手機?

防爆手機之所以必須使用專業設計的產品&#xff0c;主要是出于安全考慮&#xff0c;以防止在易燃易爆環境中因手機使用不當引發爆炸事故。以下幾點詳細解釋了使用專業化工防爆手機的必要性&#xff1a; 本質安全設計&#xff1a;頂堅專業防爆手機采用了本質安全&#xff08;本安…

動手學深度學習(Pytorch版)代碼實踐 -計算機視覺-47轉置卷積

47轉置卷積 import torch from torch import nn from d2l import torch as d2l# 輸入矩陣X和卷積核矩陣K實現基本的轉置卷積運算 def trans_conv(X, K):h, w K.shapeY torch.zeros((X.shape[0] h - 1, X.shape[1] w - 1))for i in range(X.shape[0]):for j in range(X.shap…

昇思25天學習打卡營第5天|數據變換Transforms

數據變換Transforms 介紹Transforms分類Common TransformsVision TransformsText TransformsPythonTokenizer LookupLambda Transforms 參考 介紹 MindSpore提供不同種類的數據變換&#xff08;Transforms&#xff09;&#xff0c;配合數據處理Pipeline來實現數據預處理。 所有…

【ROS】apt 找不到 ROS版本?(ROS1和ROS2通用方案)

問題描述 安裝ROS底層系統時&#xff0c;經常遇到一個情況就是apt找不到ros的對應版本 解決方案 添加ros官方給的apt源和安裝密鑰 ROS1 # ros獎項 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.li…

數學建模 —— MATLAB中的向量

目錄 向量的創建方法 (1)直接輸入法 (2)冒號法&#xff08;常用&#xff09; (3)利用MATLAB函數創建 linspace函數 logspace函數 向量元素的引用 (1)單個元素引用 (2)多個元素引用 向量元素的修改和刪除 向量的創建方法 在 MATLAB中&#xff0c;向量的創建方法主要有…

微軟Edge瀏覽器多用戶配置文件管理:個性化瀏覽體驗

在家庭或工作環境中&#xff0c;經常需要在同一臺計算機上為多個用戶創建和管理獨立的瀏覽體驗。微軟Edge瀏覽器提供了多用戶配置文件管理功能&#xff0c;允許用戶為每個賬戶設置獨立的書簽、歷史記錄、密碼、擴展和設置。本文將詳細介紹如何在微軟Edge中管理多個用戶配置文件…

連接Sql Server時報錯:無法通過使用安全套接字層加密與 SQL Server 建立安全連接

JDBC連接Sql Server時報錯:無法通過使用安全套接字層加密與 SQL Server 建立安全連接 前言解決辦法一解決辦法二總結 前言 今天使用jdbc連接sql server突然報錯為&#xff1a;SQLServerException: “Encrypt”屬性設置為“true”且 “trustServerCertificate”屬性設置為“fals…

GoMate:配置化模塊化的Retrieval-Augmented Generation (RAG) 框架

文章目錄 GoMate簡介1.1 GoMate的核心技術文檔解析向量存儲嵌入模型問題查詢文本生成文檔更新 1.2 GoMate的應用領域智能客服知識庫構建內容生成教育培訓法律文書處理 GoMate的產品特色2.1 文檔解析2.2 向量存儲2.3 嵌入模型2.4 問題查詢2.5 文本生成2.6 文檔更新 GoMate的使用…

解決SPA(單頁應用)首屏加載速度慢

SPA是目前流行的前端開發模式&#xff0c;相對于傳統的多頁面用戶體驗更好&#xff0c;操作更順暢&#xff0c;開發效率也更高。但是SPA首屏加載速度慢一直是個致命的問題&#xff0c;由于SPA應用首次打開需要一次性加載大量的靜態資源&#xff0c;這就導致了加載速度慢的問題&…

監聽設備方向變化?分享 1 段優質 JS 代碼片段!

大家好&#xff0c;我是大澈&#xff01; 本文約 700 字&#xff0c;整篇閱讀約需 1 分鐘。 每日分享一段優質代碼片段。 今天分享一段 JS 代碼片段&#xff0c;用于在H5端監聽設備方向的變化。 老規矩&#xff0c;先閱讀代碼片段并思考&#xff0c;再看代碼解析再思考&#…

文件夾內-資源名稱前加序號排列

問題&#xff1a;在文件夾下的資源可以按時間排序&#xff0c;導入unity后資源順序會亂掉&#xff0c;不方便按順序賦值&#xff0c;為了方便&#xff0c;通過下面方法在文件夾下統一在資源名稱前按順序加上序號 win11在文件夾內右鍵&#xff0c;選擇——在終端中打開 輸入&a…