买卖股票的最佳时机II

简介: 买卖股票的最佳时机II

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润 。


示例1
输入:prices = [7,1,5,3,6,4]

输出:7

解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。

    随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。

    总利润为 4 + 3 = 7 。


示例2
输入:prices = [1,2,3,4,5]

输出:4

解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。

    总利润为 4 。

示例3
输入:prices = [7,6,4,3,1]

输出:0

解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0 。


方法1:贪心算法 

class Solution {
    public int maxProfit(int[] prices) {
        if(prices==null||prices.length<2) return 0;
        int index=0,length=prices.length,sum=0;
        while(index<length){
            while(index<length-1&&prices[index]>=prices[index+1])
                index++;
            int min=prices[index];
            while(index<length-1&&prices[index]<=prices[index+1])
                index++;
            sum+=prices[index++]-min;
        }
        return sum;
    }
}
相关文章
|
数据安全/隐私保护
fastadmin是如何设置没有权限的用户不能访问某些页面的?
fastadmin是如何设置没有权限的用户不能访问某些页面的?
964 0
|
10月前
|
前端开发 Java 关系型数据库
基于ssm的台球厅管理系统,附源码+数据库+论文
本项目为新锐台球厅管理系统,支持管理员和会员两种角色。管理员可进行会员管理、台球桌管理、订单管理等;会员可查看台球桌、预约、购买商品等。技术框架基于Java,采用B/S架构,前端使用Vue+HTML+JavaScript+CSS+LayUI,后端使用SSM框架,数据库为MySQL。运行环境为Windows,JDK8+MySQL5.7+Tomcat8.5。提供演示视频及详细文档截图。
|
IDE JavaScript Java
Processing介绍及几个python模式下的案例
该文章介绍了Processing这一开源编程语言和环境,主要用于视觉艺术和设计领域,并提供了Python模式下的编程案例。
712 5
|
安全 Unix Linux
深入理解 Linux 内核3
深入理解 Linux 内核
377 2
|
SQL 存储 数据库
SQL 语言:基本概述和数据定义
SQL 语言:基本概述和数据定义
623 4
|
程序员 编译器 C语言
C语言----动态内存分配(malloc calloc relloc free)超全知识点
C语言----动态内存分配(malloc calloc relloc free)超全知识点
1823 6
|
小程序
微信小程序扫描二维码如何跳转小程序内指定页面并传递参数给目标页面?
微信小程序扫描二维码如何跳转小程序内指定页面并传递参数给目标页面?
微信小程序扫描二维码如何跳转小程序内指定页面并传递参数给目标页面?
|
前端开发 JavaScript API
SpringBoot+Netty开发IM即时通讯系列(二)
通过JS以Ajax异步地让浏览器每隔一段时间(10S)发送请求到后端,去询问服务端是否有新消息、新状态等,如果有则取出并通过前端再渲染。但这很容易造成无限循环,也就是前端Ajax会不停地循环后端的数据
668 0
SpringBoot+Netty开发IM即时通讯系列(二)
|
安全 数据安全/隐私保护
沃通SMIME电子邮件证书申请指南
沃通S/MIME电子邮件证书是全球信任的基础级(Class 1)电子邮件证书,遵循S/MIME安全电子邮件协议,实现电子邮件签名和加密,具有验证发件邮箱真实性、保护电子邮件内容机密性和完整性等功能,防止电子邮件信息泄露、内容篡改、发件方身份仿冒、钓鱼邮件等邮件安全风险
428 0
|
消息中间件 设计模式 Kubernetes
【面经分享】-一年工作经验阿里三面
【面经分享】-一年工作经验阿里三面
1115 0
【面经分享】-一年工作经验阿里三面