LintCode--买卖股票的最佳时机
来源:互联网 发布:php cookie 保存数组 编辑:程序博客网 时间:2024/04/27 23:04
LintCode--best-time-to-buy-and-sell-stock(买卖股票的最佳时机)
原题链接:http://www.lintcode.com/zh-cn/problem/best-time-to-buy-and-sell-stock/
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
样例
给出一个数组样例 [3,2,3,1,2], 返回 1
分析:
新建一个新的数组记录每天的涨幅,顺理成章转化为最大子序列和。
时间复杂度 O(n)
代码(C++、Python、Java):
class Solution {public: /** * @param prices: Given an integer array * @return: Maximum profit */ int maxProfit(vector<int> &prices) { // write your code here int n = prices.size(); if (n <= 1) return 0; vector<int> trans; for (int i = 1; i <= n; i++) trans.push_back(prices[i] - prices[i-1]); int imax = 0, res = 0; for(int i = 0; i < n-1; i++){ imax += trans[i]; if (imax > res) res = imax; else if(imax < 0) imax = 0; } return res; }};
class Solution: """ @param prices: Given an integer array @return: Maximum profit """ def maxProfit(self, prices): # write your code here n = len(prices) if n <= 1: return 0 trans = [0 for i in range(n-1)] for i in range(n-1): trans[i] = prices[i+1] - prices[i] imax = 0 res = 0 for i in range(n-1): imax += trans[i] if imax > res: res = imax elif imax < 0: imax = 0 return res
public class Solution { /** * @param prices: Given an integer array * @return: Maximum profit */ public int maxProfit(int[] prices) { // write your code here int n = prices.length; if (n <= 1) return 0; int []trans = new int [n-1]; for (int i = 0; i < n-1; i++) trans[i] = prices[i+1] - prices[i]; int imax = 0, res = 0; for (int i = 0; i < n-1; i++){ imax += trans[i]; if (imax > res) res = imax; else if (imax < 0) imax = 0; } return res; }}
0 0
- LintCode-买卖股票的最佳时机
- LintCode--买卖股票的最佳时机
- Lintcode:买卖股票的最佳时机
- 买卖股票的最佳时机,lintcode
- 【LintCode】买卖股票的最佳时机
- lintcode--买卖股票的最佳时机
- Lintcode 买卖股票的最佳时机
- 买卖股票的最佳时机-LintCode
- LintCode--买卖股票的最佳时机 II
- lintcode-买卖股票的最佳时机-149
- lintcode-买卖股票的最佳时机II-150
- LintCode:买卖股票的最佳时机 II
- LintCode:买卖股票的最佳时机 III
- Lintcode 买卖股票的最佳时机 II
- LintCode 151 买卖股票的最佳时机 III
- LintCode 152 买卖股票的最佳时机 IV
- lintcode--买卖股票的最佳时机II
- 买卖股票的最佳时机 II-LintCode
- 俞敏洪老师推荐的书单
- 0-1背包:nefu19采药hdu2546饭卡
- MVC图片上传
- leetcode-35 Search Insert Position
- struts2 action如何在前台弹出信息提示
- LintCode--买卖股票的最佳时机
- php $_GET与$_POST各自的特点
- express 入门
- jquery 使用
- Clang、LLVM与GCC介绍
- Bash脚本实现批量作业并行化
- 我的第一个java项目——面向对象设计。
- LintCode -- 寻找缺失的数
- php上传带进度