动态规划--Leetcode121.买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。
示例 1:
输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
示例 2:
输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
public class Solution121 {
public static int maxProfit(int[] prices) {
int i,j=0,k=0;
int n = prices.length;
int min = 10000;
int max = -1;
int t=0,flag;
for(i=0;i<n;i++)
{
flag = 0;
if(prices[i]>=max)
{
max = prices[i];
flag = 1;
j = i;
if(j==0)
{
max = -1;
}
}
if(prices[i]<=min)
{
min = prices[i];
flag = 1;
k = i;
}
if(i>0&&flag==1&&k<j&&t<(max-min))
{
t = max - min;
}
if(prices[i]-min>t&&k<i)
{
t = prices[i]-min;
}
}
return t;
}
public static void main(String[] args)
{
// int[] a={7,1,5,3,6,4};
// int[] a={7,6,4,3,1};
// int[] a={2,1,2,1,0,1,2};
int[] a={3,3,5,0,0,3,1,4};
System.out.println(maxProfit(a));
}
}
动态规划--Leetcode121.买卖股票的最佳时机相关推荐
- 算法训练Day49 | Leetcode121. 买卖股票的最佳时机(只能买卖一次);LeetCode122. 买卖股票的最佳时机II(可以买卖多次)
目录 Leetcode121. 买卖股票的最佳时机 方法一:暴力解法 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 方法二:贪心算法 1. 思路 2. 代码实现 3. 复杂度分析 方 ...
- _42LeetCode代码随想录算法训练营第四十二天-动态规划 | 121.买卖股票的最佳时机、122.买卖股票的最佳时机II
_42LeetCode代码随想录算法训练营第四十二天-动态规划 | 121.买卖股票的最佳时机.122.买卖股票的最佳时机II 题目列表 121.买卖股票的最佳时机 122.买卖股票的最佳时机II 1 ...
- 买卖股票动态规划python_leetcode 买卖股票的最佳时机(一,二简单,动态规划)...
买卖股票的最佳时机(一): 本题是获取最大利润:利用动态规划求解,自底向上,找出从以前到今天可以获取的最大利润:因此最后一天的就是最大利润: 状态 每天有三种选择,买入,卖出,什么也不做: 每天的状态 ...
- 代码随想录算法训练营第五十二天_第九章_动态规划 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
LeetCdoe 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格. 你只能选择 某一天 买入这只股票,并选择在 未 ...
- Leetcode-121. 买卖股票的最佳时机
题目链接 121.买股票的的最佳时机 题目描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最 ...
- leetcode--121. 买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票. 示例 ...
- leetcode121买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票. 示例 ...
- (java)leetcode121 买卖股票的最佳时机1(Best Time to Buy and Sell Stock)针对数组的峰值和谷底的操作
题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出 ...
- 【买卖股票的最佳时机】
[LeetCode121. 买卖股票的最佳时机] 题目描述 方法1: 一次遍历 方法2: 动态规划 题目描述 买卖股票的最佳时机 https://leetcode-cn.com/problems/be ...
最新文章
- c语言int64编译时错误,错误:编译C程序时未在此作用域中声明uint64_t
- iOS用户设计指南 - 平台特征
- oracle 递归查询
- 独立成分分析ICA系列1:意义
- BZOJ 4819 Luogu P3705 [SDOI2017]新生舞会 (最大费用最大流、二分、分数规划)
- python中math库最大值_python-math库解析
- jsp 连接MS server 数据库的例子
- 图像特征提取与描述_角点特征01:Harris算法+Shi-Tomas算法
- hadoop碰到的 一个问题
- 进程和线程的理解(转)
- 管理感悟:如何改造代码
- 计算机基础知识和运用2作图,2020年9月统考《计算机应用基础》基础知识试题及答案2...
- 小米真蓝牙耳机说明书_【小米真无线蓝牙耳机Air 2评测使用说明书介绍】快充|降噪|蓝牙5.0|开盖即连|快捷操作_摘要频道_什么值得买...
- 多路电源管理芯片(记录)
- MySQL中关于超键,主键和候选键的区别
- Jenkins-构建项目
- 太原理工大学信息与计算机学院桑胜波,Direction leader: Sang Shengbo
- Python实现元胞自动机——十字路口
- oracle11g rac转换单机,oracle11g rac RMAN备份恢复至单机
- 用代码写个人简历的练习
热门文章
- LeetCode 107. 二叉树的层次遍历 II(队列)
- LeetCode 129. 求根到叶子节点数字之和(DFS)
- go oracle编程,go基础编程(一):第一个go程序-hello word
- 服务器换完主板后无盘进不了系统,更换主板后主板认不出硬盘无法进入系统的办法 – 手机爱问...
- 语言4位bcd码怎么加加_S7300400如何使用SCL语言调用SFC1(READ_CLK)读取日期和时间?...
- SemEval-2010任务8:成对名词之间的语义关系的多分类
- oracle 汇总上面所有,Oracle经验技巧汇总
- java ndc_通过slf4j/log4j的MDC/NDC 实现日志追踪
- windows脚本命令闪退_NCL2Python|windows系统安装Pyngl和Pynio
- 【RippleNet】(一)preprocessor.py【未完】