码迷,mamicode.com
首页 > 其他好文 > 详细

121. Best Time to Buy and Sell Stock

时间:2016-11-09 19:27:00      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:代码   elf   遍历数组   选择   color   多少   价格   允许   turn   

  不定期更新leetcode解题java答案。

  采用pick one的方式选择。

  题意为只允许一次买卖,给定数组为当天物品价格,问最大获益是多少。

  显然获取最大利益的方法是遍历数组,在遍历的过程中,每读取一天的价格,将之与前面遍历获取的最小值进行差运算,此为在该天卖出单次可获得最大收益。将其储存起来,并在随后的操作进行与后来的值进行比较,择取更大值,最后结果为单次交易可能最大的结果。

  代码如下:

 1 public class Solution {
 2     public int maxProfit(int[] prices) {
 3         if(prices.length == 0)
 4             return 0;
 5         int minPrice = prices[0], max = 0;
 6         for(int i = 1; i < prices.length; i++){
 7             if(prices[i] - minPrice > max)
 8                 max = prices[i] - minPrice;
 9             if(prices[i] < minPrice)
10                 minPrice = prices[i];
11         }
12         return max;
13     }
14 }

  最近在了解python,偶尔也会将python版本发出。

 1 class Solution(object):
 2     def maxProfit(self, prices):
 3         """
 4         :type prices: List[int]
 5         :rtype: int
 6         """
 7         if len(prices) == 0:
 8             return 0
 9         max = 0
10         minPrice = prices[0]
11         
12         for price in prices:
13             if max < price - minPrice:
14                 max = price - minPrice
15             if price < minPrice:
16                 minPrice = price
17                 
18         return max

 

121. Best Time to Buy and Sell Stock

标签:代码   elf   遍历数组   选择   color   多少   价格   允许   turn   

原文地址:http://www.cnblogs.com/zslhq/p/6047860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!