当前位置:网站首页>LeetCode Hot Questions (12. The Best Time to Buy and Sell Stocks)
LeetCode Hot Questions (12. The Best Time to Buy and Sell Stocks)
2022-08-11 03:12:00 【Know the current affairs person-HJJ】
12.买卖股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格.
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票.设计一个算法来计算你所能获取的最大利润.
返回你可以从这笔交易中获取的最大利润.如果你不能获取任何利润,返回 0 .
示例 1:
输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 .
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票.
示例 2:
输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0.
提示:
1 <= prices.length <= 105
0 <= prices[i] <= 104
package com.leetcode;
/** * @Author Handsome * @Date 2022/8/10 17:48 * @Version 1.0 */
public class 买卖股票的最佳时机 {
public static void main(String[] args) {
System.out.println(maxProfit1(new int[]{
7, 1, 5, 3, 6, 4}));
System.out.println(maxProfit2(new int[]{
7, 1, 5, 3, 6, 4}));
// 输入 [7,1,5,3,6,4]
// 输出 5
}
/** * 暴力法: * 复杂度分析 * 时间复杂度:O(n^2).循环运行 n(n−1)/2 次. * 空间复杂度:O(1).只使用了常数个变量. */
public static int maxProfit1(int[] prices) {
int maxprofit = 0;
for (int i = 0; i < prices.length - 1; i++) {
for (int j = i + 1; j < prices.length; j++) {
int profit = prices[j] - prices[i];
if (profit > maxprofit) {
maxprofit = profit;
}
}
}
return maxprofit;
}
/** * 一次遍历: * 复杂度分析 * 时间复杂度:O(n),只需要遍历一次. * 空间复杂度:O(1),只使用了常数个变量. */
public static int maxProfit2(int prices[]) {
int minprice = Integer.MAX_VALUE;
int maxprofit = 0;
for (int i = 0; i < prices.length; i++) {
if (prices[i] < minprice) {
minprice = prices[i];
} else if (prices[i] - minprice > maxprofit) {
maxprofit = prices[i] - minprice;
}
}
return maxprofit;
}
}
我的学习论坛
HandsomeForum:用Java编写的学习论坛,打造我们自己的圈子!(http://huangjunjie.vip:66)
边栏推荐
猜你喜欢

互换性与测量技术-公差原则与选用方法

多商户商城系统功能拆解26讲-平台端分销设置

Salesforce解散中国团队,什么样的CRM产品更适合中国人

互换性测量技术-几何误差

OpenCV founder: Open source must not be completely free!

Detailed explanation of new features of ES advanced array function syntax

Idea (preferred) cherry-pick operation

Docker 链接sqlserver时出现en-us is an invalid culture错误解决方案

Summary of Logstash log data write exception troubleshooting

CSAPP Data Lab
随机推荐
[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)
带你系统学习MySQL索引
The most unlucky and the luckiest
最倒霉与最幸运
“京台高铁”亮相百度地图,真能在2035年建成吗?
广州纸质发票再见!开住宿费电子发票即将全面取代酒店餐饮加油站发票
AI+医疗:使用神经网络进行医学影像识别分析
基于FPGA状态机的自动售货机功能实现
C语言之自定义类型------结构体
多线程之ThreadPoolExecutor
Salesforce解散中国团队,什么样的CRM产品更适合中国人
调试技巧总结
Add user error useradd: cannot open /etc/passwd
Logstash日志数据写入异常排查问题总结
SQL 开发的十个高级概念
MySQL的主从复制+读写分离+分库分表,看这一篇文章就够了
索引的创建、查看、删除
成都纸质发票再见!开住宿费电子发票即将全面取代酒店餐饮加油站发票
qtcreator调试webkit
Window function application of sum and count