题解 | 买卖股票的最好时机(一)
买卖股票的最好时机(一)
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]; } }*/