|
微软面试题:买卖股票的最佳时机 题目描述 假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
样例1
- 输入: [3, 2, 3, 1, 2]
- 输出: 1
- 说明:你可以在第三天买入,第四天卖出,利润是 2 - 1 = 1
|
样例2
- 输入: [1, 2, 3, 4, 5]
- 输出: 4
- 说明:你可以在第0天买入,第四天卖出,利润是 5 - 1 = 4
|
样例3
- 输入: [5, 4, 3, 2, 1]
- 输出: 0
- 说明:你可以不进行任何操作然后也得不到任何利润
|
题解 大厂面试除了操作系统和计算机网络这些基础外,还需要熟练掌握算法和数据结构。
- public class Solution {
- public int maxProfit ( int[] prices) {
- if (prices == null || prices.length == 0) {
- return 0;
- }
- int min = Integer.MAX_VALUE; //just remember the smallest price
- int profit = 0;
- for ( int i : prices) {
- min = i < min ? i : min;
- profit = (i - min) > profit ? i - min : profit;
- }
- return profit;
- }
- }
|
----------------------------
原文链接:https://blog.csdn.net/JiuZhang_ninechapter/article/details/104538586
作者:九章算法
程序猿的技术大观园:www.javathinker.net
[这个贴子最后由 flybird 在 2020-03-10 12:49:17 重新编辑]
|
|