原题链接:#122 Best Time to Buy and Sell Stock II
要求:
假定你有一个包含n个元素的整型数组,其中的第i个元素是指定股票在第i天的价格。
设计一个算法来计算在这n天里可能获得的最大利润。注:只考虑单只该股票的买入和卖出时机,一天内可以买卖多次,但不允许同一时间内存在多次交易(即:再次买入之前,必须买入该股票)
难度:中等
分析:
贪心算法:在对问题求解时,总是做出在当前看来最好的选择。即:不从整体上最优加以考虑,只求局部最优解。
对于此题情境,获得可能的最大利润的手段为:买入后的次日,只要股价上涨就卖出。同时如果后一天股价下跌则前一天不买入。后一条如果没有时间机器任谁也无法事先知道。所以下面解法只能用于在n天中每天股价都已知的情况下求个理想值,并不能用于指导实际。
解决方案:
Java - 2 ms
public int maxProfit(int[] prices) { int maxProfit = 0; for(int i=prices.length-1; i>0; i--){ if(prices[i-1]>=prices[i]){ continue; }else { maxProfit += prices[i]-prices[i-1]; } } return maxProfit; }
相关推荐
leetcode题目:Best Time to Buy and Sell Stock II
面试题 02.06. 回文链表标签:栈、递归、链表、双指针难度:简单题目大意给定一个链表的头节点 head。然后再使用两个指针,一个指向数组开始位置,一个指向数
LeetCode初级算法-数组内容,共10个题,代码手写,可能不太清楚
970. 强整数对数运算function powerfulIntegers(x: number, y: number, bound: number): numb
Algorithm-LeetCode-Sol-Res.zip,干净,易懂的解决方案和资源,为leetcode在线判断算法问题。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
解题思路思路和LeetCode-python 503.下一个更大元素 II一致,只是这里求的是下标的距离,而不是数值倒序搜索,用到栈,栈里存储索引情况1:若栈为
给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从
要考虑第一个节点要被删除的情况代码实现self.next = Nonedef removeElements(self, head: ListNode, val:
示例1输入: 1 1**示例2**输入: 1 1代码实现Definition for a binary tree node.本文链接: https://www.
leetcode思维导图-贪心
示例 1:输出:"leetcode"解释:如图所示,"codeleet" 重新排列后变为 "leetcode" 。示例 3:示例 4:输出:"arigatou
Leetcode的ac是什么意思 LeetCodeInJava List #98 Validate Binary Search Tree #100 Same Tree #104 Maximum Depth of Binary Tree #122 Best Time to Buy and Sell Stock II #136 Single Number #150 Evaluate ...
LeetCode 探索中的初级算法,手写算法,部分题有题目分析思路
122.Best Time to Buy and Sell Stock II 123.Best Time to Buy and Sell Stock III 141.Linked List Cycle 142.Linked List Cycle II 188.Best Time to Buy and Sell Stock IV 217.Contains Duplicate 263.Ugly ...
Algorithm-LeetCode-Solution-From-GuaZiDou.zip,Leetcode解决方案Gitbook,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
【LeetCode】831. Masking Personal Information 解题报告(Python)标签(空格分隔): LeetCode作者: 负雪
算法 Leetcode刷题手册 labuladong的算法小抄官方完整版
1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一步之前的最优解则不作保留 2.由(1)中的介绍,可以知道贪
649. Dota2 参议院贪心算法 + 循环队列const { length } = senate,radiantStack: number[] = [],d
leetcode-算法-实践 1. 二和 给定一个整数数组,返回两个数字的索引,使它们相加为特定目标。您可以假设每个输入将只有一个解决方案,并且您可能不会两次使用相同的元素。 例子: Given nums = [2, 7, 11, 15], ...