zoukankan      html  css  js  c++  java
  • 3.Best Time to Buy and Sell Stock(买卖股票)

    Level:

    ​ ​ Easy

    题目描述:

    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.

    Note that you cannot sell a stock before you buy one.

    Example 1:

    Input: [7,1,5,3,6,4]
    Output: 5
    Explanation: Buy on day 2 (price = 1) and sell on day 5 (price = 6), profit = 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: 0
    Explanation: In this case, no transaction is done, i.e. max profit = 0.
    

    思路分析:

    ​​ ​ 遍历数组,保存当前遇到的最小元素minval,然后计算访问到的元素与其差值,保留遇到的最大差值,就是结果。

    代码:

    class Solution {
        public int maxProfit(int[] prices) {
            int minVal=Integer.MAX_VALUE;
            int difference=0;
            for(int i=0;i<prices.length;i++){
                minVal=Math.min(prices[i],minVal);
                difference=Math.max(difference,prices[i]-minVal);
            }
            return difference;
        }
    }
    
  • 相关阅读:
    [UE4]虚幻引擎的C++环境安装
    [UE4]Drop,扔物品
    [UE4]Grab抓取
    [UE4]抓取准备
    [UE4]用Format Text进行调试
    [UE4]Overlap Event 碰撞事件
    [UE4]Skeletal Mesh的碰撞体
    [UE4]模拟物理
    [UE4]Static Mesh的碰撞体
    [UE4]镜像
  • 原文地址:https://www.cnblogs.com/yjxyy/p/10688538.html
Copyright © 2011-2022 走看看