Say you have an array for which the ith element is the price of a given stock on day I.
If you were only permitted to complete at most one transaction (ie, buy one and every one share of the stock), design an algorithm to find the maximum profit.
Use an array A [n-1] to store the stock price difference between the current day and the previous day, and convert the question into the maximum subsequence and the problem, except that there is no negative value, and the minimum value is 0. A [I] indicates the difference between the stock price on the I + 1 day and the stock price on the I day.
Public class Solution {public int maxsum (int [] num) {int sum = 0; int max = 0; for (int I = 0; I <num. length; I ++) {sum + = num [I]; if (sum <0) sum = 0; if (max <sum) max = sum;} return max ;} public int maxProfit (int [] prices) {if (prices. length = 0 | prices. length = 1) return 0; int [] sub = new int [prices. length-1]; for (int I = 0; I <sub. length; I ++) {sub [I] = prices [I + 1]-prices [I];} return maxsum (sub );}}