JavaScript演算法-買賣股票的最佳時機
買賣股票的最佳時機
假設有一個數組,它的第 i 個元素是一個給定的股票在第 i 天的價格。
設計一個演算法來找到最大的利潤。你可以完成儘可能多的交易(多次買賣股票)。然而,你不能同時參與多個交易(你必須在再次購買前出售股票)。
思路:從陣列第2項開始,如果前一項比後一項大,那麼久進行買入操作,如果比前一項大,那麼就進行賣出。
JavaScript程式碼
var maxProfit = function (prices) {
let maxValue = 0;
let tmp = 0;
for (let i = 1; i < prices.length; i++) {
tmp = prices[i] - prices[i - 1 ];
if (tmp > 0) {
maxValue += tmp;
}
}
return maxValue;
};
相關推薦
JavaScript演算法-買賣股票的最佳時機
買賣股票的最佳時機 假設有一個數組,它的第 i 個元素是一個給定的股票在第 i 天的價格。 設計一個演算法來找到最大的利潤。你可以完成儘可能多的交易(多次買賣股票)。然而,你不能同時參與多個交易(你必須在再次購買前出售股票)。 思路:從陣列第2項開始,如果
買賣股票最佳時機(I II III IV 冷凍期,手續費)
共6個問題: 買賣股票最佳時機 買賣股票最佳時機 II 買賣股票最佳時機 III 買賣股票最佳時機 IV 最佳買賣股票時機含冷凍期 買賣股票最佳時機含手續費 分析: 只允許一次交易的最大收益(一次買進賣出)動態規劃: dp[i] = max(dp[i-1],
Leetcode初級演算法 買賣股票的最佳時機 Python
問題描述: 演算法思路: 一個很自然的想法是找到陣列的最大值和最小值,相減得到最大差值。但因為是買賣股票,售出必須發生在買入之後,所以利潤對應的買入買出價不一定是陣列的極值。舉例說明:假設陣列的極值為max,min,最佳的買入賣出價格為buy,sell,如果這幾個元素的相對順序為:ma
【演算法】動態規劃演算法—買賣股票的最佳時機系列(1-4)
買賣股票的最佳時機—1:題目:假設有一個數組,它的第i個元素是一支給定的股票在第i天的價格。如果你最多隻允許完成一次交易,設計一個演算法來找出最大利潤。解法:該題解法和最大連續子陣列和的解法思路是一樣的。1、根據股票的利益意義,想要更多利益則值低時買進,值高時賣出。根據提供的
leetcode:買賣股票最佳時期(貪心java)
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例 1: 輸入: [7,1,5,3,6,4] 輸出: 7 解
LeetCode-探索-初級-陣列-買股票最佳時機2-java
買賣股票的最佳時機 II 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在
買賣股票的最佳時機 II c++演算法 leetcode122
題目: 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 解答: 對題目進行理解,都有什麼
LeetCode演算法題122:買賣股票的最佳時機 II 解析
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意: 你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例1: 輸入: [7,1,5,3,6,4] 輸出: 7
LeetCode演算法題121:買賣股票的最佳時機解析
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一個演算法來計算你所能獲取的最大利潤。 注意你不能在買入股票前賣出股票。 示例1: 輸入: [7,1,5,3,6,4] 輸出: 5 解釋: 在第 2 天(股票價格
演算法練習(1)動態規劃:買賣股票的最佳時機1
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一個演算法來計算你所能獲取的最大利潤。 注意你不能在買入股票前賣出
LeetCode-122.買賣股票的最佳時機II(相關話題:貪心演算法)
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例 1: 輸入: [7,1,5,3,6,4] 輸出:
LeetCode初級演算法——陣列(2)買賣股票的最佳時機 II
買賣股票的最佳時機 II 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例 1
初級演算法:LeetCode 買賣股票的最佳時機 Ⅱ (貪心演算法)
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例 1: 輸入: [7,1,5,3,
122. 買賣股票的最佳時機 II(JavaScript)
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例 1: 輸入: [7,1,5,3,
LeetCode演算法:買賣股票的最佳時機 II
買賣股票的最佳時機II 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前
LeetCode--初級演算法--陣列篇--買賣股票的最佳時機 II
題目 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例 1: 輸入: [7,1,5,3,6
java演算法題:買賣股票的最佳時機 II
題目: 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例 1: 輸入: [7,1,5,3,
[LeetCode][初級演算法][動態規劃]買賣股票的最佳時機
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一個演算法來計算你所能獲取的最大利潤。 注意你不能在買入股票前賣出股票。 這道題參考了網上的解答,採用貪心法,遍歷陣列時一邊計算最大利
【Leetcode】【簡單】【122. 買賣股票的最佳時機 II】【JavaScript】
題目描述 122. 買賣股票的最佳時機 II 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 &nbs
淺談什麼是動態規劃以及相關的「股票」演算法題:一網打盡「買賣股票的最佳時機」
本文首發於公眾號「五分鐘學演算法」,是圖解 LeetCode 系列文章之一。 個人網站:https://www.cxyxiaowu.com 動態規劃 1 概念 動態規劃演算法是通過拆分問題,定義問題狀態和狀態之間的關係,使得問題能夠以遞推(或者說分治)的方式去解決。在學習動態規劃之前需要明確