最大利润的投资
Description
小明考上NWPU之后,想挪出一些钱去购买理财产品来赚一些零花钱。根据市场规则,小明只能在某一天买入这个理财产品,并且在未来的某一天卖出这个理财产品(只能买一次)。请你设计一个算法帮助小明来获取最大的利润。如果不能获取任何利润,返回0。
给定一个数组prices,它的第i个元素prices[i]表示一支理财产品第i天的价格。
Input
第一行输入一个整数n,表示理财产品持续的天数
第二行输入n个整数,中间用空格分开,表示理财产品当天的价格。最后一行没有换行符。
Output
输出一个整数,表示小明可以获得的最大收益。
Sample
代码
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static int maxProfit(int prices[]) {
int minprice = Integer.MAX_VALUE;
int maxprofit = 0;
for (int i = 0; i < prices.length; i++) {
if (prices[i] < minprice) {
minprice = prices[i];
} else if (prices[i] - minprice > maxprofit) {
maxprofit = prices[i] - minprice;
}
}
return maxprofit;
}
public static void main(String[]args) throws IOException{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] price = new int[n+1];
for(int i=0;i<n;i++) {
price[i] = sc.nextInt();
}
sc.close();
System.out.print(maxProfit(price));
}
}