题目:
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.
eg:
[2,1,4,5,2,9,7] result=8
代码如下:
int maxProfit(vector<int> &prices) {
int n=prices.size();
if(n<=1)return 0;
vector<int> result;
result.push_back(prices[0]);
result.push_back(prices[0]);
int begin=0,end=1;
for(int i=1;i<n;i++)
{
if(prices[i]<result[begin])
{
result.push_back(prices[i]);
result.push_back(prices[i]);
begin=begin+2;
end=end+2;
}
else if(prices[i]>result[end])
{
result[end]=prices[i];
}
}
int max=0;
for(int i=0;i<result.size();i+=2)
{
if(result[i+1]-result[i]>max)
{
max=result[i+1]-result[i];
}
}
return max;
}
//此方法只能用HTTP协议
//保存文件到本地
//Url是文件下载地址,fileName 为一个全名(路径+文件名)文件
URL url;
DataOutputStream out = null;
DataInputStream in = null;
try {
url = new URL(/blog_article/Url/index.html);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
in = new DataInputStream(connection.getInputStream());
out = new DataOutputStream(new FileOutputStream(fileName));
byte[] buffer = new byte[4096];
int count = 0;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(out != null){
out.close();
}
if(in != null){
in.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
产品需求分析的4个必杀技:捡金子、Warroom作战室、情节串联板、Build构建
结合本人在华为6年的软件开发和产品管理经验,同时借鉴阿里巴巴(淘宝)、Google(Chrome)、HP(打印机)、微软(MSN)相关产品的需求文档分析,发现要搞定软件产品需求,必须要掌握4个必杀技:
1) 捡金子:搞定市场需求,实现神经末梢与大脑的联通
2)Warroom:作战室,汇总各种情报、信息,形成产品的特性清单和卖点
3)情节串联板:用最直观,傻瓜都能看懂的方式,明确需求是什么
4)Build:构建,考虑需求轻重缓急、资源投入,分批推出功能,实现测试、开发协同
1、捡金子:去伪存真的过程
每天团队都面对大量的客户需求反馈、客户问题投诉、合作伙伴稀奇古怪的想法,冠以文明的词汇:创意,这些创意良莠不齐,有些会切实帮助我们提升产品,有些甚至会把我们带到沟里去。捡金子模型就是一个去伪存真的过程,在众多信息中,找到切实有价值的创意,协助我们的产品更成功,该模型包含如下2个核心要素:
1) 市场需求卡片:实现市场需求信息结构化,例如标题、描述、保密性、客户信息、竞争信息等,从而使大家对需求有一致、清晰的了解
2) 市场需求处理流程:即捡金子过程,通过流程对市场需求进行筛选、分类、排序、接纳判断等,基于过程汇集众人的智慧,确保筛除沙子、留下金子
青铜器软件的市场需求客片:
华为技术的捡金子过程:
2、Warroom(作战室):汇集想法,确定卖点
HP的Warroom主要用于产品团队召开头脑风暴会议,会议上大家针对收集的客户需求、团队自身想法、竞争对手的情报等进行全面的讨论和分析,最终形成产品的特性清单,同时基于特性清单,汇总提炼出来2-3个核心卖点,Warroom会议需要具备如下4特征:
1) 情报信息终端:便于随时查阅相关情报信息
2) 圆形会议桌:构造平等的讨论氛围
3) 只鼓励、不打击:任何新奇的想法都是值得赞扬的,严格拒绝批评与打击
4) 便签纸:想法随时张贴、随意组合,激发大家讨论的氛围
青铜器软件的Warroom(作战室):贴点法,提炼卖点
预知后续情节串联板、Build构建如何,请听明天(6月5日)下回分解