代碼隨想錄算法訓練營第三十二天|LeetCode122 買賣股票的最佳時機Ⅱ、LeetCode55 跳躍游戲、LeetCode45 跳躍游戲Ⅱ

題1:

指路:122. 買賣股票的最佳時機 II - 力扣(LeetCode)
思路與代碼:

基本思路:一天買入一天賣出,得到每部分正利潤作為局部最優解,例如prices[7, 1, 5, 3, 6, 4]中,利潤分別為[-6, 4, -2, 3, -2],選取每部分正利潤為從prices[1]買入prices[2]賣出,再從prices[3]買入prices[4]賣出?。本題無須返回具體買入賣出的方法,我們選取每個正利潤即可得到最大利潤并返回。代碼如下:

class Solution {
public:int maxProfit(vector<int>& prices) {int result = 0;for (int i = 1;i < prices.size(); i++) {result += max(prices[i] - prices[i - 1], 0);}return result;}
};

特別的,for循環中i的值從1開始是因為for循環內統計利潤,而第一天買入無利潤,至少第二天才有利潤可言。

題2:

指路:55. 跳躍游戲 - 力扣(LeetCode)
思路與代碼:

從nums[0]開始向后跳,可以跳的步數有0-nums[0]種,這樣討論起來就比較麻煩。換一種方式,我們考慮用覆蓋范圍代替跳躍步數,換言之該元素覆蓋范圍內的元素都可以用。其中每個階段更大的覆蓋范圍是局部最優解。最后得到全局最優解,如果終點在最大覆蓋范圍以內則返回true,否則返回false。代碼如下:

class Solution {
public:bool canJump(vector<int>& nums) {int cover = 0;  // 覆蓋位置的下標if (nums.size() == 1) return true;for (int i = 0; i <= cover; i++) {  // 在覆蓋范圍內增加下一步的覆蓋范圍cover = max(i + nums[i], cover);if (cover >= nums.size() - 1) return true;}return false;}
};

題3:

指路:45. 跳躍游戲 II - 力扣(LeetCode)
思路與代碼:

基本思路為:每跳一步都盡可能地增大覆蓋范圍,在這里我們記錄當前覆蓋范圍和下一步的覆蓋范圍,在覆蓋范圍內取到較大值,并記錄步數。直到當前節點的覆蓋范圍大于等于數組長度時跳出循環。代碼如下:

class Solution {
public:int jump(vector<int>& nums) {if (nums.size() == 1) return 0;int cur = 0; int next = 0;  // 當前和下一步的覆蓋范圍int res = 0;for (int i = 0; i < nums.size(); i++) {next = max(i + nums[i], next);if (i == cur) {if (cur != nums.size() - 1) {res ++;cur = next;if (cur >= nums.size() - 1) break;}else break;}}return res;}
};

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

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

相關文章

山東大學軟件學院項目實訓-創新實訓-基于大模型的旅游平臺(三十)- 微服務(10)

目錄 12.5 RestClient操作索引庫 12.5.1創建庫 12.5.2 刪除索引庫 12.5.3 判斷是否存在 12.6 RestClient操作文檔 12.6.1 新增文檔 12.6.2 查詢文檔 12.6.3 修改文檔 12.6.4 刪除文檔 12.6.5 批量導入文檔 12.5 RestClient操作索引庫 酒店mapping映射 ?PUT /hotel{&…

shell簡介

一、Shell 概念定義 Shell 是用 C 語言編寫的程序&#xff0c;是用戶使用 Linux 的橋梁&#xff0c;既是命令語言又是程序設計語言。 shell 腳本為 Shell 編寫的腳本程序&#xff0c;常說的 shell 通常指 shell 腳本。 包含一系列命令的文本文件&#xff0c;這些命令按照特定…

調試環境搭建(Redis 6.X 版本)

今兒&#xff0c;我們來搭建一個 Redis 調試環境&#xff0c;目標是&#xff1a; 啟動 Redis Server &#xff0c;成功斷點調試 Server 的啟動過程。使用 redis-cli 啟動一個 Client 連接上 Server&#xff0c;并使用 get key 指令&#xff0c;發起一次 key 的讀取。 視頻可見…

【python解決】查詢報%d format: a number is required, not str問題

【Python解決】查詢報%d format: a number is required, not str問題 在Python中&#xff0c;字符串格式化是一種常見的操作&#xff0c;用于創建包含變量的字符串。如果你在使用%操作符進行格式化時遇到了%d format: a number is required, not str的錯誤&#xff0c;這意味著…

C# 集合(二) —— List/Queue類

總目錄 C# 語法總目錄 集合二 List/Queue 1. List2. Queue 1. List List有ArrayList和LinkedList ArrayList 類似數組&#xff0c;查找快&#xff0c;插入刪除慢(相對)LinkedList 類似雙向鏈表&#xff0c;查找慢(相對)&#xff0c;插入刪除快 //ArrayList //ArrayList Arr…

ts和js有什么不同

TypeScript&#xff08;簡稱TS&#xff09;和JavaScript&#xff08;簡稱JS&#xff09;之間的主要區別可以歸納為以下幾點&#xff1a; 類型系統&#xff1a; JS&#xff1a;是一種弱類型、動態類型的語言&#xff0c;變量的類型在運行時確定&#xff0c;沒有靜態類型選項。T…

基于SSM的旅游民宿預定系統【源碼】【運行教程】

基于SSM的旅游民宿預定系統 一、項目介紹1. 游客功能2. 管理員功能3. 高級功能 二、項目技術棧三、項目運行四、項目演示總結 大家好&#xff0c;這里是程序猿代碼之路&#xff01;隨著旅游業的快速發展&#xff0c;民宿作為一種獨特的住宿方式越來越受到游客的喜愛。為了提升用…

百華鞋業祝莘莘學子旗開得勝,一舉奪魁

在知識的海洋中&#xff0c; 有一群人以筆為劍&#xff0c; 在漫長的歲月里不斷磨礪&#xff0c; 只為迎接那場人生的重要戰役——高考。 高考&#xff0c; 是學子們十幾年寒窗苦讀的見證&#xff0c; 是他們用奮斗書寫青春考卷的舞臺。 在這個舞臺上&#xff0c; 他們將…

當前主流的App開發技術綜述

一、引言 隨著移動互聯網的蓬勃發展&#xff0c;App&#xff08;應用程序&#xff09;已經成為人們日常生活中不可或缺的一部分。無論是社交、購物、娛樂還是工作學習&#xff0c;App都以其便捷、高效和個性化的特點深受用戶喜愛。而在這一過程中&#xff0c;App開發技術也在不…

周末總結(2024/06/08)

工作 人際關系核心實踐&#xff1a; 要學會隨時回應別人的善意。執行時間控制在5分鐘以內 堅持每天早會打招呼 遇到接不住的話題時拉低自己&#xff0c;抬高別人(無陰陽氣息) 工作上的要點 現狀&#xff08;接受破爛現狀&#xff0c;改變狀態&#xff09; - 和老師溝通過&…

ChatGPT-4o體驗demo

OpenAI 最近推出了其最新的人工智能語言模型——GPT-4O。該模型是在原有 GPT-4 的基礎上進行優化而成&#xff0c;旨在提升生成質量和響應速度。GPT-4O 采用了更加高效的架構設計&#xff0c;使其在處理復雜文本時表現出更快的速度和更高的準確性。GPT-4O 在訓練過程中融入了最…

一些關于機器學習的思路和猜測

一、機器學習能做什么 1、網上說機器學習就是根據已有的圖片、文字、視頻資料&#xff0c;建立一個數據庫&#xff0c;用一個處理算法&#xff0c;把已有的資料進行提取關鍵特征和一些聯系&#xff0c;存入數據庫中。 2、當學習到一定程度&#xff0c;就能跟人一樣到實際場景…

kafka的leader和follower

leader和follower kafka的leader和follower是相對于分區有意義的&#xff0c;不是相對于broker。 因為每個分區都有leader和follower, leader負責讀寫數據。 follower負責復制leader的數據保存到自己的日志數據中&#xff0c;并在leader掛掉后重新選舉出leader。 kafka會再…

pinia 重置狀態插件

一、前言 測試提出&#xff0c;登出登錄后&#xff0c;再次進入頁面后。頁面的查詢項非初始狀態。檢查后發現&#xff0c;是因為查詢項的值存到了store呢&#xff0c;從store中獲取&#xff0c;故需要一個重置store的方法 二、pinia 查閱pinia官網后&#xff0c;發現pinia提…

請求分頁存儲管理方式

目錄 請求分頁中的硬件支持 1. 請求頁表機制 2. 缺頁中斷機構 硬件支持的詳細工作流程 示例代碼 請求分頁中的內存分配 最小物理塊數的確定 分配方式 分配公平性 請求分頁存儲管理方式中的內存分配策略 具體示例 頁面調入策略 最近最久未使用&#xff08;LRU, Leas…

(2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,雙向掃描)xLSTM 作為通用視覺骨干

Vision-LSTM: xLSTM as Generic Vision Backbone 公和眾與號&#xff1a;EDPJ&#xff08;進 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 進 V 交流群&#xff09; 目錄 0. 摘要 2 方法 3 實驗 3.1 分類設計 4 結論 0. 摘要 Transformer 被廣泛用作計算…

linux常用操作命令匯總

各個軟件安裝步驟流程 jdk 鏈接&#xff1a; mysql 鏈接&#xff1a; redis 要查詢 Linux 上各個應用程序占用的內存 要查詢 Linux 上各個應用程序占用的內存&#xff0c;可以使用 top 或 ps 命令結合其他工具來實現。下面介紹兩種方法 方法一&#xff1a;使用 top 命令 打…

Access數據中的SQL偏移注入

使用場景&#xff1a; 目標數據表的字段較多&#xff0c;無法一一獲取的時候&#xff0c;嘗試使用偏移注入的方式實現SQL注入。 原理&#xff1a; 例如&#xff1a;一個表有6個字段&#xff0c;而你想獲取的目標表admin的字段不知道&#xff0c;此時可以使用聯合查詢的方式獲…

反射型xss靶場練習

反射型xss危害小&#xff0c;這里使用的xss靶場是常用的xss靶場&#xff1a;xss-labs。 當我們完成彈窗后就通過該關卡&#xff0c;說該關卡存在xss的一個漏洞并且可以解析js代碼。 第一關&#xff1a; 這里沒有過濾我們輸入的代碼&#xff1a;直接將js代碼放在js代碼中&a…

12、架構-流量治理之服務容錯

概述 容錯性設計&#xff08;Design for Failure&#xff09;是微服務的另一個核心原 則&#xff0c;也是筆者書中反復強調的開發觀念轉變。不過&#xff0c;即使已經有一定 的心理準備&#xff0c;大多數首次將微服務架構引入實際生產系統的開發者&#xff0c; 在服務發…