一、题目要求

二、题目分析
用 dp数组 存储每天的股票最大利润,例如 dp[i] 代表第i天股票的最大利润
而每天的股票利润等于什么?前一天股票的利润,跟今天的股票价格和历史股票最低价的差值 进行相比,取大的那个
得出一个公式:dp(n) = Math.max(dp(n - 1), prices[n] - min)
第n天最大利润等于 第n-1天最大利润 跟 第n天股票价格和股票历史最低价的差值 相比,取大的那个
三、代码分析
/** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { let min = prices[0], n, len = prices.length, dp = [0]; if( !len ) return 0; for( n=1; n<len; n++){ if(prices[n] < min){ min = prices[n]; } dp[n] = Math.max(dp[n-1] , prices[n]-min); } return dp[n-1]; };
浙公网安备 33010602011771号