121. Best Time to Buy and Sell Stock& 122. Best Time to Buy and Sell Stock II
来源:互联网 发布:pc端授权微信登陆java 编辑:程序博客网 时间:2024/06/04 23:27
Say you have an array for which the ith element is the price of a given stock on dayi.
If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.
Example 1:
Input: [7, 1, 5, 3, 6, 4]Output: 5max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)
Example 2:
Input: [7, 6, 4, 3, 1]Output: 0In this case, no transaction is done, i.e. max profit = 0.
Subscribe to see which companies asked this question
第一题,用kadane算法,和寻找最大子串和是一个思路。对于这道题来讲,原始串就是每个prices和它之前的prices的差。
class Solution {public: int maxProfit(vector<int>& prices) { int cur=0,soFar=0; for(int i=1;i<prices.size();i++){ cur=max(0, cur+prices[i]-prices[i-1]); soFar=max(cur, soFar); } return soFar; }};
第二题是进阶版
Say you have an array for which the ith element is the price of a given stock on dayi.
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
leetcode上有段分析很好。
suppose the first sequence is "a <= b <= c <= d", the profit is "d - a = (b - a) + (c - b) + (d - c)" without a doubt. And suppose another one is "a <= b >= b' <= c <= d", the profit is not difficult to be figured out as "(b - a) + (d - b')". So you just target at monotone sequences.
class Solution {public: int maxProfit(vector<int>& prices) { int total=0; for(int i=1;i<prices.size();i++) total+=max(prices[i]-prices[i-1],0); return total; }};
- 【LeetCode】121. Best Time to Buy and Sell Stock && 122. Best Time to Buy and Sell Stock II
- 121. Best Time to Buy and Sell Stock& 122. Best Time to Buy and Sell Stock II
- LeetCode 121. Best Time to Buy and Sell Stock & 122. Best Time to Buy and Sell Stock II题解
- 122. Best Time to Buy and Sell Stock II
- LeetCode 122. Best Time to Buy and Sell Stock II
- 122.Best Time to Buy and Sell Stock II
- [Leetcode] 122. Best Time to Buy and Sell Stock II
- [leetcode] 122.Best Time to Buy and Sell Stock II
- 【leetcode】122.Best Time to Buy and Sell Stock II
- 122. Best Time to Buy and Sell Stock II
- 【LeetCode】122.Best Time to Buy and Sell Stock II
- [leetcode] 122. Best Time to Buy and Sell Stock II
- LeetCode #122. Best Time to Buy and Sell Stock II
- 122. Best Time to Buy and Sell Stock II LeetCode
- 122. Best Time to Buy and Sell Stock II
- 122. Best Time to Buy and Sell Stock II
- 122. Best Time to Buy and Sell Stock II
- [LeetCode]122. Best Time to Buy and Sell Stock II
- HDU 1517 A Multiplication Game(巴什博弈)
- 用一个简单示例演示在python中调用C及C++
- js手机抽奖、微信抽奖模板
- C Pluss Pluss逗比虫子
- 基于UGUI遍历所以的子物体,自动设置字体
- 121. Best Time to Buy and Sell Stock& 122. Best Time to Buy and Sell Stock II
- 零基础如何学习SAP BI模块
- 数字信号处理
- 华为机试题--字符串分隔
- 内存缓存和LruCache
- R语言基础入门之一
- 单词长度
- 堆和堆栈的区别
- RAID各级别、软RAID