面试经典 150 题 ---- 买卖股票的最佳时机 II

面试经典 150 题 ---- 买卖股票的最佳时机 II

买卖股票的最佳时机II

方法一:贪心

贪心策略,我们可以考虑局部最优以达到整体最优,仅需要判断相邻两天之间的利润是否大于 0,若大于 0 则可以将答案加入到最终答案中,若小于 0 就遍历到下一天。

java 复制代码
class Solution {
    public int maxProfit(int[] prices) {
        int len = prices.length;
        int ans = 0;
        for (int i = 1; i < len; i ++ ) {
            if (prices[i] - prices[i - 1] > 0) {
                ans += prices[i] - prices[i - 1];
            }
        }
        return ans;
    }
}

时间复杂度: O(n)

仅需遍历一次数组即可

空间复杂度: O(1)

相关推荐
南山安1 小时前
Vue学习:ref响应式数据、v-指令、computed
javascript·vue.js·面试
LYFlied2 小时前
Webpack 深度解析:从原理到工程实践
前端·面试·webpack·vite·编译原理·打包·工程化
老王熬夜敲代码2 小时前
C++中的mutex、condition_val
c++·笔记·面试
南山乐只2 小时前
【原文翻译搬运】Equipping agents for the real world with Agent Skills
人工智能·职场和发展·创业创新
月明长歌2 小时前
【码道初阶】Leetcode.189 轮转数组:不熟悉ArrayList时踩得坑,被Arraylist初始化骗了?
java·算法·leetcode·职场和发展
fantasy_arch2 小时前
leetcode算法-最大乘积子数组
算法·leetcode·职场和发展
玩具猴_wjh3 小时前
慧科讯业面试复盘
面试·职场和发展
小明的小名叫小明3 小时前
区块链核心知识点梳理(面试高频考点1)-BTC UTXO 账户模型
面试·区块链·utxo
小明的小名叫小明5 小时前
区块链核心知识点梳理(面试高频考点2)-BTC vs ETH vs Solana 账户模型对比
面试·区块链
想用offer打牌5 小时前
JDK动态代理为什么基于接口而不基于类?
java·后端·面试