当前位置:网站首页>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)
边栏推荐
猜你喜欢
Detailed explanation of new features of ES advanced array function syntax
互换性与测量技术——表面粗糙度选取和标注方法
DOM-DOM tree, a DOM tree has three types of nodes
Official release丨VS Code 1.70
最倒霉与最幸运
Salesforce解散中国团队,什么样的CRM产品更适合中国人
ROS源代码阅读(1)
How does MSP430 download programs to the board?(IAR MSPFET CCS)
ES6 advanced string processing new features
互换性测量技术-几何误差
随机推荐
【Unity入门计划】Unity2D动画(1)-动画系统的组成及功能的使用
带你系统学习MySQL索引
google搜索技巧——程序员推荐
获取链表长度
按摩椅控制板的开发让按摩椅变得简约智能
面试常考的7种排序算法
alibaba数据同步组件canal的实践整理
Economic Misunderstandings in the Crypto World: Is Cash a Savings?Scarcity creates value?
2022年广东省安全员A证第三批(主要负责人)操作证考试题模拟考试平台操作
Entity到Vo的转换
今天聊聊接口幂等性校验
一次简单的 JVM 调优,学会拿去写到简历里
Idea (优选)cherry-pick操作
【idea 报错】 无效的目标发行版:17 的解决参考
ES进阶 数组功能语法新特性详解
PIFuHD配置记录
怎么删除语句审计日志?
df和df -lh的意思
font
多商户商城系统功能拆解26讲-平台端分销设置