博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode--Best Time to Buy and Sell Stock
阅读量:6322 次
发布时间:2019-06-22

本文共 969 字,大约阅读时间需要 3 分钟。

1.题目描述

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 (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

2.解法分析

实际上就是给出了一个数组a,数组中元素值为整数,找出数组中任意a[i]-a[j]的最大值,其中需满足i>=j

此题是经典题型,最简单的解法是先将a转化为b,其中:b[i]= a[i+1]-a[i],然后求b[i]的子数组中和最大的一个(子数组可以为空),于是有了下面的代码:

class Solution {
public:
int maxProfit(vector
&prices) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(prices.size() <=1)return 0;
vector
::iterator iter;
for(iter=prices.begin();iter!=prices.end()-1;++iter)
{
*iter = *(iter+1) - *iter;
}
 
int max = 0;
int subSum =0;
 
for(iter=prices.begin();iter!=prices.end()-1;++iter)
{
subSum = subSum + *iter;
if(subSum>max)max = subSum;
if(subSum <0)subSum=0;
}
 
return max;
 
}
};

转载于:https://www.cnblogs.com/obama/p/3249987.html

你可能感兴趣的文章
PHP环境搭建(ubuntu)
查看>>
最近很忙
查看>>
storm项目之实时流式计算介绍
查看>>
ubuntu省略命令行中的绝对路径提示
查看>>
Nginx允许跨域
查看>>
《TCP/IP详解:卷1》之TCP/UDP总结
查看>>
无线路由器配置案例1(课堂总结)
查看>>
Tomcat 配置log4j
查看>>
Android SQLite快速入门教程
查看>>
旅美见闻:美国贫民百姓众生相
查看>>
[MDIT每天一小时]Window系统搭建Android开发环境(最全最详细)
查看>>
对称矩阵及对称矩阵的压缩存储
查看>>
解决cobbler get-loaders卡住的问题
查看>>
辟谣!nginx做不了https正向代理?
查看>>
How to use ServerCore<1>
查看>>
内核中的自旋锁
查看>>
Silverlight客户端实现区域像元统计以及地形剖面图的绘制
查看>>
android流式布局热门标签的实现
查看>>
SCCM 2012 R2 LAB Part3.层次结构安装之SQL Server的准备
查看>>
php.ini 配置详解
查看>>