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

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

这道题要求的一个min和一个max,只是这个min所在的位置要在max所在位置的左边。

有一种做法是采用蛮力算法,也就是通过从左往右遍历,把每一个元素都当做min,然后再在这个元素的右边找一个最大值,这样得到一个profit,最后求得所有情况中profit的最大值即刻。但是这种做法的时间复杂度是O(n^2);

另一种做法是通过时间换空间的方法,我先用两个数组:数组1和数组2,数组1[i]表示从prices的第0个数到第i个数的最小值,数组2[i]表示从prices的第[len-1]个数到第i个数的最大值。

这种做法的时间复杂度是O(n),但是空间复杂度也是O(n).

所以如果有人想出时间复杂度是O(n),且空间复杂度是O(1), 请告诉我下啊!!!

下面是另一种做法的AC代码:

1 /** 2      * Say you have an array for which the ith element is the price of a given stock on day i. 3      * If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock),  4      * design an algorithm to find the maximum profit. 5      * @param prices 6      * @return 7      */ 8     public int maxProfit(int[] prices) { 9         if(prices==null || prices.length <= 1)10             return 0;11         int len = prices.length;12         //ma keep the minimum number till now.13         int[] ma = new int[len];14         //mia keep the maximum number from the end to now15         int[] mia = new int[len];16         ma[0] = prices[0];17         for(int i=1;i
ma[i-1])19 ma[i] = ma[i-1];20 else21 ma[i] = prices[i];22 }23 mia[len-1] = prices[len-1];24 for(int i = len-2;i>=0;i--){25 if(prices[i]>mia[i+1])26 mia[i] = prices[i];27 else28 mia[i] = mia[i+1];29 }30 int max=0;31 for(int i=0;i
max? mia[i]-ma[i]:max;33 }34 return max;35 }

 

转载于:https://www.cnblogs.com/echoht/p/3702347.html

你可能感兴趣的文章
java struts2 debug
查看>>
简单够用的设计
查看>>
swift 广告轮播图
查看>>
marmalade android 5.0 JNI 调用失败的解决方案
查看>>
float 浮动详解
查看>>
【总结整理】面试需了解
查看>>
ArcEngine开发遇到的问题(转)
查看>>
js时间戳与日期格式的相互转换
查看>>
关于RF在实践WEB UI自动化测试时,碰到的问题
查看>>
解决Maven项目中jar包依赖冲突问题
查看>>
Pairing Heap模板
查看>>
cairo-1.14.6 static compiler msys mingw32
查看>>
Mac osx 下让android 模拟器横屏
查看>>
luogu P1387 最大正方形
查看>>
Android图片圆角效果
查看>>
WeChat Official Account Admin Platform API Introduction
查看>>
C语言写单链表的创建、释放、追加(即总是在最后的位置增加节点)
查看>>
poj1635
查看>>
C# LINQ详解(一)
查看>>
视频直播点播nginx-rtmp开发手册中文版
查看>>