LeetCode121.买卖股票的最佳时机】的更多相关文章

Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (i.e., buy one and sell one share of the stock), design an algorithm to find the maximum profit. No…
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票. 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 . 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格. 示例 2: 输入: [7,6,4,3,1] 输出…
目录 说在前面 引例:只能交易一次 一.动态数组定义 二.状态转移方程 三.初始化 四.优化 无限制买卖 一.动态数组定义 二.状态转移方程 三.初始化 四.优化 交易 2 次,最大利润? 一.动态数组定义 二.状态转移方程 三.初始化 四.优化 交易多次,最大利润? hello,我是 Johngo! 股市一点红,股市一点绿! 激动的心,颤抖的手,无法控制的身子骨! 今天聊一聊股市,股价相关的问题,关系到身家的涨跌. 怎么用「动态规划」的思想去获得股市中最大利润.(LeetCode中的股价问题…
买卖股票的最佳时机 IV 假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格. 设计一个算法来找到最大的利润.你最多可以完成 k 笔交易. 注意事项 你不可以同时参与多笔交易(你必须在再次购买前出售掉之前的股票) 样例 给定价格 = [4,4,6,1,1,4,2,5], 且 k = 2, 返回 6. 解题 根据上面几题的思想:考虑定义一个数组A,A[i][j] 表示 i 天 买,j天卖,同时只保存A[i][j] >=0 的情况,为了防止重复,数组只考虑上三角 (i<=j)的情况 下…
买卖股票的最佳时机 III 假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格.设计一个算法来找到最大的利润.你最多可以完成两笔交易. 样例 给出一个样例数组 [4,4,6,1,1,4,2,5], 返回 6 解题 尝试参考买卖股票的最佳时机 II 提交运行发现错误,每次找到连续的递增子数组记录前后的差值,找到两个最大的.如下程序,其实有问题,最大的差值,可能跨两个子数组的. 如:{1,2,4,2,5,7,2,4,9,0} 三个递增数组:{1,2,4}.{2,5,7}.{2,4,9},…
买卖股票的最佳时机 II 假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格.设计一个算法来找到最大的利润.你可以完成尽可能多的交易(多次买卖股票).然而,你不能同时参与多个交易(你必须在再次购买前出售股票). 给出一个数组样例[2,1,2,0,1], 返回 2 解题 参考买卖股票的最佳时机I ,求出相邻两天的股票差值,当差值大于0的时候,完成一次交易.当连续一段的交易,可以理解为:该连续交易的起始是购买,连续交易的结束时卖出.这样求出的就是一个子段的最大值.对所有的子段求和就是答案了…
买卖股票的最佳时机 假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格.如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润. 样例 给出一个数组样例 [3,2,3,1,2], 返回 1 解题 法一:直接暴力,时间发杂度O(N2) public class Solution { /** * @param prices: Given an integer array * @return: Maximum profit */ public int maxProfi…
开始刷leetcode算法题 今天做的是“买卖股票的最佳时机” 题目要求 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票). 看到这个题目 最初的想法是蛮力法 通过两层循环 不断计算不同天之间的利润及利润和 下面上代码 class Solution(object): def maxProfit(self, prices):…
2.买卖股票的最佳时机 II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票). 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 . 随后,在第 4 天(股票价格 = 3)…
题目描述:买卖股票的最佳时机 题目要求求解能获得最大利润的方式? 可以定一个二维数组 d [ len ] [ 2 ] ,其中d[ i ][ 0 ] 表示前i天可以获得的最大利润:d[ i ][ 1 ]表示前i天中股票最低的价格. 因此可以得到一个递推公式: d[ i ] [ 0 ] = max(d[ i ][ 0 ] , prices[i] - a[i-1][1]) d[ i ] [ 1 ] = min(prices[ i ],a[ i -1 ][ 1 ]); 具体的代码如下: class So…