当前位置:网站首页>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)
边栏推荐
- pathman_config、pathman_config_params 删除后,如何重建?
- 互换性与测量技术-公差原则与选用方法
- [BX] and loop
- 轮转数组问题:如何实现数组“整体逆序,内部有序”?“三步转换法”妙转数组
- Add user error useradd: cannot open /etc/passwd
- 作业8.10 TFTP协议 下载功能
- [4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)
- Goodbye Chengdu paper invoices!The issuance of electronic invoices for accommodation expenses will soon completely replace the invoices of hotels, catering and gas stations
- 【Unity入门计划】Unity2D动画(1)-动画系统的组成及功能的使用
- 一次简单的 JVM 调优,学会拿去写到简历里
猜你喜欢
The practice of alibaba data synchronization component canal
BUU刷题记录
常用认证机制
深度学习-第二次
CSDN blog replacement skin
BUU brushing record
[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)
多线程之ThreadPoolExecutor
DOM-DOM树,一个DOM树有三种类型的节点
Environment configuration of ESP32 (arduino arduino2.0 VScode platform which is easy to use?)
随机推荐
redis学习五redis的持久化RDB,fork,copyonwrite,AOF,RDB&AOF混合使用
AI+Medical: Using Neural Networks for Medical Image Recognition and Analysis
(CVPR-2017)在身体和潜在部位学习深度上下文感知特征以进行行人重识别
ROS源代码阅读(1)
KingbaseES有什么办法,默认不读取sys_catalog下的系统视图?
Idea (preferred) cherry-pick operation
Talk about the understanding of RPC
最倒霉与最幸运
大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,如何分配?
Typescript学习笔记 | 字节青训营笔记
Entity到Vo的转换
2022年G1工业锅炉司炉题库及模拟考试
A surviving spouse of the opposite sex within large turn paragraph, what for
The most unlucky and the luckiest
Realization of vending machine function based on FPGA state machine
互换性与测量技术——表面粗糙度选取和标注方法
Vulnhub靶机:GEMINI INC_ 2
《人生若如初见》命运多舛,人物饱满,朱亚文角色反差太惊喜
MSP430如何给板子下载程序?(IAR MSPFET CCS)
JS-DOM element object