`
Cwind
  • 浏览: 265804 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
793bb7df-a2a9-312d-8cb8-b66c3af482d1
LeetCode题解
浏览量:53698
社区版块
存档分类
最新评论

LeetCode[贪心算法] - #122 Best Time to Buy and Sell Stock II

阅读更多

原题链接:#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;
    }

简单测试程序 

 

 

3
1
分享到:
评论

相关推荐

    算法面试通关40讲完整课件 25-26 贪心算法

    - **股票买卖问题**:如LeetCode上的题目《Best Time to Buy and Sell Stock II》,通过贪心策略,每次遇到股价低于之前最低价时买入,遇到高于当前价格时卖出,可以实现利润的最大化。 - **零钱找零问题**:...

    leetcode-常见考题4.pdf

    第二个问题“Best Time to Buy and Sell Stock II”(122题),题目条件相同,但允许进行多笔交易。在一次交易中,买入后再卖出才算是完成了一笔交易,且不能同时买入多股股票。此问题可以用贪心算法解决,即遍历...

    leetcode卡-leetcode:利特码解决方案

    leetcode卡 leetcode exercises 3-5 solutions everyday. fighting~ TODO array Best Time to Buy and Sell Stock II Valid Sudoku linked list Palindrome linked list Linked List Cycle trees Convert Sorted ...

    3、动态规划必练题(含解法).pdf

    - Best Time to Buy and Sell Stock II:不限制交易次数,寻找最大利润。 - Best Time to Buy and Sell Stock III:存在多日限制交易,最多两次交易。 - Best Time to Buy and Sell Stock IV:与前三者不同,可能...

    Leetcode题目+解析+思路+答案.pdf

    - **Best Time To Buy and Sell Stock**:股票交易的最佳时机问题。 - **Unique Paths**:计算机器人到达目标位置的唯一路径数。 - **Maximum Subarray**:寻找数组中的最大子数组和。 - **Climbing Stairs**:...

    LeetCode,《剑指offer》中的算法题的题目和解法以及常见算法的实现

    Best Time to Buy and Sell Stock"股票买卖问题,可以利用动态规划找到最佳买卖时机。 5. 排序与查找:排序算法如快速排序、归并排序,查找算法如二分查找,都在实际面试中经常出现。例如,"148. Sort List"要求对...

    oj题.zip

    7. **122.py** - 可能是LeetCode的122题,"Best Time to Buy and Sell Stock II"(买卖股票的最佳时机II),这是一道关于动态规划或贪心策略的题目,用于找出股票交易的最佳策略。 8. **156.py** - 这可能是...

    leetcode分类-leetcode:leetcodeJavaScript题解

    JavaScript开发者在这一阶段可以挑战如"最长递增子序列"(Longest Increasing Subsequence)、"买卖股票的最佳时机含冷冻期"(Best Time to Buy and Sell Stock withCooldown)等题目,这些题目需要深入理解动态规划...

    leetcode代码200题c++

    3. **Best Time to Buy and Sell Stock II**:这是一个经典的动态规划问题,用于找出股票的最佳买卖时机,可以连续多次买卖。理解状态转移方程和动态规划的原理至关重要。 4. **Jump Game II**:此问题涉及到广度...

    LeetCode leetcode部分题解答代码实现

    * Best Time to Buy and Sell Stock:给定一个数组,返回股票买卖的最佳时机。这个题目需要使用动态规划的思想,将数组分解成更小的子数组,并找到最佳时机。 * Unique Paths:给定一个矩形,返回从左上角到右下角的...

    LeetCode练习答案

    - **买卖股票的最佳时机(Best Time to Buy and Sell Stock)**: 给定一个数组,它的第i个元素是一支给定股票第i天的价格,求出最大利润。 - **唯一路径(Unique Paths)**: 一个机器人位于一个m x n网格的左上角 (起始...

    Day6-Task123.买卖股票的最佳时机 III

    链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 示例1 输入: [3,3,5,0,0,3,1,4] 输出: 6 解释: 在第 4 天...

    LeeCode每日一题–买卖股票的最佳时机II

    【买卖股票的最佳时机II】是LeeCode上的经典算法问题,...题目链接:[https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii)

Global site tag (gtag.js) - Google Analytics