LeetCode面向运气之Javascript—第121题-买卖股票的最佳时机-97.77%

news2024/11/24 9:25:25

LeetCode第121题-买卖股票的最佳时机

在这里插入图片描述

题目要求

给定一个数组prices ,它的第i个元素prices[i]表示一支给定股票第i天的价格。

你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

举例

输入:[7,1,5,3,6,4]
输出:5

输入:prices = [7,6,4,3,1]
输出:0

思路

  1. 因为数据大小不固定,就会有很多情况
  2. 定义一个值,用来存放某一天的值,计算后续天数的差值
  3. 如果有个值比定义的值小了,那么定义的值改为这个小的,继续计算后续的
  4. 每种情况计算出发放到个数组里,最后比较数组的最大值

代码实现一

/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function (prices) {
    let result = [0] // 结果,存放所有情况的利润
    let vernier = 0 // result的下标
    let start = prices[0] // 当前买入的钱
    for (let i = 1; i < prices.length; i++) {
        if (start > prices[i]) {
            start = prices[i];
            vernier++
            result[vernier] = 0
        }
        else {
            result[vernier] = result[vernier] > (prices[i] - start) ? result[vernier] : (prices[i] - start)
        }
    }

    return Math.max(...result)
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/868543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Martin_DHCP_V3.0 (DHCP自动化泛洪攻击GUI)

Github>https://github.com/MartinxMax/Martin_DHCP_V3.0 首页 Martin_DHCP_V3.0 自动化DHCP洪泛攻击 Martin_DHCP_V3.0 使用方法 安装三方库 #python3 1.RunMe_Install_Packet.py 攻击路由器 #python3 Martin_DHCP_Attack.py 填写网卡 填写攻击次数 开始运行

语音芯片的型号有哪些?为什么强烈推荐使用flash型可擦写的

一、语音芯片的简介 语音芯片的型号有哪些&#xff1f;为什么强烈推荐使用flash型可擦写的芯片。这里我们简单描述一下如下常见类容&#xff1a; 1、他们都有什么特点&#xff1f;以及发展的历程简介 2、常见的语音芯片有哪些&#xff1f; 3、为什么推荐使用flash型可以重复…

Scractch3.0_Arduino_ESP32_学习随记_显示网络天气(二)

这里写目录标题 目的器材程序联系我们 目的 通过C02获取网络天气。并在屏上显示 器材 硬件: 齐护机器人C02 购买地址 软件: scratch3.0 下载地址:官网下载 程序 使用的是公开免费的API&#xff0c;对请求间隔和次数有限制&#xff0c;如果连续获取可能会被封IP&#xff…

机器学习讲解!(多种算法示例 全网最详细!)

机器学习 机器学习是人工智能的一个分支&#xff0c;它研究计算机如何通过自身的学习和经验来提高其性能&#xff0c;而不需要明确的被编程。机器学习算法可以从大量的数据中学习&#xff0c;并能根据这些数据做出预测或分类。机器学习目前已经被广泛应用于许多领域&#xff0…

轻量级 Spring Task 任务调度可视化管理

Spring Task/Spring Scheduler 傻傻分不清 首先做一下“名词解释”&#xff0c;分清楚这两者的区别&#xff1a; Spring Task Spring Task 是 Spring 框架自带的一个任务调度模块&#xff0c;提供了基本的任务调度功能。它是通过 Java 的 Timer 和 TimerTask 类来实现的&…

Qt扫盲-QWidget理论使用总结

QWidget理论使用总结 一、概述二、顶层 控件 和子 控件三、复合控件四、自定义控件和绘制五、大小提示和大小策略六、事件七、一组函数和属性八、QWidget样式表九、透明度和双缓冲十、创建半透明窗口 一、概述 widget 是用户界面的最小单位&#xff1a;它从window系统接收鼠标…

STM32F429IGT6使用CubeMX配置串口通信

1、硬件电路 2、设置RCC&#xff0c;选择高速外部时钟HSE,时钟设置为180MHz 3、配置USART1引脚 4、生成工程配置 5、部分代码 //重定向printf函数 int fputc(int ch, FILE *f) {HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);return ch; } /* USER CODE BE…

初学vue3时应该注意的几个问题

初学vue3时应该注意的几个问题 声明响应式 响应式数据的声明在vue2的时候很简单&#xff0c;在data中声明就行了。但现在可以使用多个方式。 reactive用于声明Object, Array, Map, Set; ref用于声明String, Number, Boolean 使用reactive来声明基础数据类型&#xff08;Str…

华为OD机试真题 Java 实现【寻找相同子串】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

Leetcode-每日一题【剑指 Offer 26. 树的子结构】

题目 输入两棵二叉树A和B&#xff0c;判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构&#xff0c; 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A: 3 / \ 4 5 / \ 1 2 给定的树 B&#xff1a; 4 / 1 返回 true&#xff0…

超全的数据可视化大屏设计组件库 sketch格式

随着大屏可视化设计需求的发展&#xff0c;可视化sketch矢量素材变得越来越受欢迎&#xff0c;它可以为设计师提供丰富的设计元素&#xff0c;帮助他们更高效更快速的完成设计任务。 大屏可视化sketch数量素材是B端可视化设计师们最佳设计资源&#xff0c;它可以帮助设计师轻松…

iOS开发-实现二维码扫一扫Scan及识别图片中二维码功能

iOS开发-实现二维码扫一扫Scan及识别图片中二维码功能 在iOS开发中&#xff0c;会遇到扫一扫功能&#xff0c;扫一扫是使用摄像头扫码二维码或者条形码&#xff0c;获取对应二维码或条形码内容字符串。通过获得的字符串进行跳转或者打开某个页面开启下一步的业务逻辑。 https…

C++ 管理系统实战

C 管理系统实战 1. 目录结构 2. workClass.h /********************************************************************************* file : employee.h* author : zhong* brief : None* attention : None* date : 2023/8/10*****…

使用阿里云服务器搭建ThinkPHP框架全流程_新手入门

阿里云百科分享使用lay服务器搭建ThinkPHP全流程&#xff0c;ThinkPHP是一款免费、开源、快速、简单、面向对象的轻量级PHP开发框架&#xff0c;遵循Apache2开源协议发布&#xff0c;是为了敏捷Web应用开发和简化企业应用开发而诞生的。本篇教程介绍如何使用云市场镜像快速搭建…

学术论文GPT源码解读:从chatpaper、chatwithpaper到gpt_academic

前言 之前7月中旬&#xff0c;我曾在微博上说准备做“20个LLM大型项目的源码解读” 针对这个事&#xff0c;目前的最新情况是 已经做了的&#xff1a;LLaMA、Alpaca、ChatGLM-6B、deepspeedchat、transformer、langchain、langchain-chatglm知识库准备做的&#xff1a;chatpa…

b站如何调整视频播放倍速3倍

b站pc网页端目前最大倍速为2倍&#xff0c;可以手动调节倍速的一个办法 视频页面-按下f12-点击console-复制粘贴代码-按下enter回车键 下面是代码&#xff0c;3可以换成自己想要的倍速&#xff0c;最大可以16倍速 document. querySelector(video).playbackRate3

C++笔记之静态成员函数的使用场景

C笔记之静态成员函数的使用场景 C静态成员函数的核心特点是不与特定类实例相关&#xff0c;可通过类名直接调用&#xff0c;用于执行与类相关的操作而无需创建类对象。其主要用途是在类级别上共享功能&#xff0c;管理全局状态或提供工具函数。 code review! 文章目录 C笔记之…

移远RM500U-CN模块直连嵌入式ubuntu实现拨号上网

目录 1 平台&#xff1a; 2 需要准备的资料 3 参考文档 4 编译环境与驱动移植 4.1 内核驱动添加厂家ID和产品ID 4. 2.添加零包处理 4.3 增加复位恢复机制 4.4 增加批量输出 批量输出 URB 的数量和容量 的数量和容量 4.5 内核配置与编译 5 QM500U-CN拨号&#xff08;在开…

tensorflow / tensorflow-gpu cuda cudNN tensorRT 安装,启用显卡加速

tensorflow / tensorflow-gpu cuda cudNN tensorRT 安装,启用显卡加速 说明 Tensorflow-GPU 已被移除。请安装 tensorflow 。 tensorflow 通过 Nvidia CUDA 支持 GPU 加速操作。 自 2019 年 9月发布 的 TensorFlow2.1 以来&#xff0c;tensorFlow 和 tensorflow-GPU 一直是同…

NFT Insider#102:The Sandbox重新上线LAND桥接服务,YGG加入Base生态

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members(https://twitter.com/WHALEMembers)、BeepCrypto&#xff08;https://twitter.com/beep_crypto&#xff09;联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周…