买卖股票的最佳时机 II

例题:

https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/

分析:

某一天买入股票,未来任意一天卖出,只能卖了再买,但可以买卖多次,并允许同一天卖出后再买入,求最大利润。

因为要保证利润最大,只能逢涨就买入,遇跌不买。

有利润就买卖,只看眼前。

先定义两个指针i ,j ,i表示当前股票的价格, j表示下一天股票价格,只要有利润就记录。

代码实现:
java 复制代码
package leetcodeup;

public class ShareslLeetcode122 {

    public static int maxProfit(int[] prices) {
        int i = 0;
        int j = 1;
        int sum = 0;
        while(j < prices.length){
            if(prices[j] - prices[i] > 0){ //有利润
                sum += prices[j] - prices[i];
            }
            i++;
            j++;
        }
        return sum;
    }

    public static void main(String[] args) {
        System.out.println(maxProfit(new int[]{9, 3, 12, 1, 2, 3})); // 11
        System.out.println(maxProfit(new int[]{7, 1, 5, 3, 6, 4})); // 7
    }
}
相关推荐
钮钴禄·爱因斯晨7 分钟前
聚焦操作系统中的PV操作
数据库·算法·系统架构·c#
0xDevNull12 分钟前
Java 深度解析:for 循环 vs Stream.forEach 及性能优化指南
java·开发语言·性能优化
云泽80814 分钟前
笔试算法 - 双指针篇(一):移动零、复写零、快乐数与盛水容器
c++·算法
研☆香16 分钟前
聊一聊如何分析js中的数据结构
开发语言·javascript·数据结构
博风16 分钟前
在tomcat应用里添加了一个线程池对象,向这个线程池发送任务,让其执行。 我希望在tomcat停机时,能等待线程池里的任务执行完了再停机,要如何实现?
java·tomcat
-凌凌漆-20 分钟前
【Qt】 QSerialPort::flush()介绍
开发语言·qt
徐子元竟然被占了!!22 分钟前
IS-IS协议
开发语言·网络·php
小猪皮蛋粥31 分钟前
python画图
开发语言·python
Felven31 分钟前
A. The 67th Integer Problem
开发语言
zopple34 分钟前
Laravel7.x核心特性全解析
开发语言·php·laravel