金融软件公司对程序员职位的面试问题
Q1) 假设您有一个数组,其中第 i 个元素是给定股票在第 i 天的价格。
如果您只被允许买入一股股票并卖出一股股票,请设计一种算法来找到买入和卖出的最佳时间。
我的解决方案:我的解决方案是在第 i 天和第 i+1 天之间为 arraysize-1 天制作一个股票价格差异数组,然后使用 Kadane 算法返回最大连续子数组的总和。然后我会在最大连续数组的开始并在最大连续数组的末尾卖出。
我想知道我的解决方案是否正确,还有更好的解决方案吗???
回答后,我被问到一个后续问题,我的回答完全相同
Q2) 假设您知道 x 公司未来 10 天的收盘价,请设计一个算法来确定您是否应该每天买入、卖出或持有(您每天只能做出 1 个决定)利润最大化的目标
例如:第 1 天收盘价:2.24
第 2 天收盘价:2.11
...
第 10 天收盘价:3.00
我的解决方案:同上
我想知道是否有更好的算法来最大化利润,因为我每天都可以做出决定