题解 | 买卖股票的最好时机(一)
买卖股票的最好时机(一)
https://www.nowcoder.com/practice/351b87e53d0d44928f4de9b6217d36bb
import java.util.Scanner;
// 贪心算法
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] nums = new int[n];
for(int i = 0; i < n;i++){
nums[i] = in.nextInt();
}
System.out.println(run(n,nums));
}
public static int run(int n,int[] nums){
if(n == 1||n == 0){
return 0;
}
int minPrice = nums[0];
int maxMoney = 0;
for(int i = 1;i < n;i++){
if(nums[i] < minPrice){
minPrice = nums[i];
}
maxMoney = Math.max(maxMoney , nums[i] - minPrice);
}
return maxMoney;
}
}
/** // 动态规划的二维数组解题
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] nums = new int[n];
for(int i = 0; i < n;i++){
nums[i] = in.nextInt();
}
System.out.println(run(n,nums));
}
public static int run(int n,int[] nums){
if(n == 1||n == 0){
return 0;
}
int[][] dp = new int[n][2];
dp[0][0] = -nums[0];
dp[0][1] = 0;
for(int i = 1;i < n;i++){
dp[i][0] = Math.max(dp[i-1][0] , -nums[i]);
dp[i][1] = Math.max(dp[i-1][0] + nums[i] , dp[i-1][1]);
}
return dp[n-1][1];
}
}*/
查看12道真题和解析
