/**
* @Author: DiTian
* @Description: 买卖股票的最佳时机
* @Date: Created in 16:49 2021/8/9
*/
public class MaxProfit {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一串数字,逗号隔开:");
String s = scanner.nextLine();
String[] split = s.split(",");
int len =split.length;
int[] num = new int[len];
for (int i = 0; i < len; i++) {
num[i] = Integer.parseInt(split[i]);
}
//双循环
maxProfit1(num);
//状态转移
maxProfit2(num);
}
private static void maxProfit2(int[] num) {
int[] dp = new int[num.length];
int minPrice = num[0];
for (int i = 1; i < num.length; i++) {
minPrice = Math.min(minPrice,num[i]);
dp[i] = Math.max(dp[i-1],num[i]-minPrice);
}
System.out.println("maxProfit = " + dp[dp.length - 1]);
}
private static void maxProfit1(int[] num) {
int max = 0;
for (int i = 0; i < num.length; i++) {
for (int i1 = i+1; i1 < num.length; i1++) {
max = (num[i1]-num[i])>max?(num[i1]-num[i]):max;
}
}
System.out.println("maxProfit = " + max);
}
}
121. 买卖股票的最佳时机(java)
最新推荐文章于 2024-04-26 14:58:36 发布