当前位置:网站首页>LeetCode热题(12.买卖股票的最佳时机)
LeetCode热题(12.买卖股票的最佳时机)
2022-08-11 03:06:00 【识时务者-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)
边栏推荐
猜你喜欢
关于地图GIS的一次实践整理(下) Redis的GIS实践
"How to kick a bad habit to read notes?
Official release丨VS Code 1.70
[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)
Detailed explanation of new features of ES advanced function syntax
DOM树的遍历-----修改样式,选择元素,创建和删除节点
互换性测量技术-几何误差
Google search skills - programmer is recommended
字体反扒
font
随机推荐
Mysql_Note6
CSDN blog replacement skin
基于FPGA状态机的自动售货机功能实现
this question in js
A surviving spouse of the opposite sex within large turn paragraph, what for
深度学习中的模型设计
全局大喇叭--广播机制
输入起始位置,终止位置截取链表
CSDN 博客更换皮肤
Add user error useradd: cannot open /etc/passwd
Multi-threaded ThreadPoolExecutor
2022年G1工业锅炉司炉题库及模拟考试
Economic Misunderstandings in the Crypto World: Is Cash a Savings?Scarcity creates value?
[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)
KingbaseES有什么办法,默认不读取sys_catalog下的系统视图?
Typescript study notes | Byte Youth Training Notes
广州纸质发票再见!开住宿费电子发票即将全面取代酒店餐饮加油站发票
Logstash日志数据写入异常排查问题总结
Window function application of sum and count
MSP430如何给板子下载程序?(IAR MSPFET CCS)