## Monday, April 14, 2014

### Problem

You have an API to predict stock values of a particular share,
The API is
`StockPrediction predict(int stockid);`

where
```class StockPrediction{
Date time:
float value;
}```

using this API develop another API which will suggest the best selling time and buying time of a share (you have to call the predict API N number of times and from the StockPredictions provide the best buy time and sell time for the stock)

`BestTiming getBestTiming(int stockid);`

where
```class BestTiming{
StockPrediction bestselltime:
}```

Example
Input

```stock value -  10   |   12   |    7   |    8    |  24  |  35  |   1  |   9
time        -  9am  |  9.30  |   9.45 |   10am  | 11am | 12am |  3am |  4am
```

Output: buy the stock at 7 rs at 9.45 and sell it for 35 rupees at 12am

(hint: go for the best solution which uses only three variable to get this result)

### Solution

We have discussed the similar problem here.
Fill array b with entries s.t. b[0] = a[1]-a[0] .... b[n-1] = a[n]-a[n-1].
Now apply Kadane's Sub sequence sum algorithm on B and Find the indices.
Time O(n), Space O(n).