当前位置: 首页 > news >正文

每日一题---买卖股票的最好时机(一)、(二)

目录

买卖股票的最好时机(一)

一、题目链接:买卖股票的最好时机(一)_牛客题霸_牛客网

二、解题思路 

三、代码实现

买卖股票的最好时机(二)

一、题目链接:买卖股票的最好时机(二)_牛客题霸_牛客网

​编辑 

二、解题思路 

三、代码实现 

 


买卖股票的最好时机(一)

一、题目链接:买卖股票的最好时机(一)_牛客题霸_牛客网

二、解题思路 

本题的解题思路,将会运用到贪心的算法思想。那么问题来了,什么是贪心呢?

贪心算法是一种在每一步选择中都采取当前状态下最优选择的算法,旨在通过一系列局部最优的选择来达到全局最优解‌‌。贪心算法的核心思想是在每一步都做出当前状态下的最优决策,而不考虑未来的决策结果。这种策略有时能够显著提高算法的效率,因为它减少了计算的复杂度,但同时也意味着贪心算法只能应用于那些通过局部最优解可以确保全局最优解的问题‌。 

那么话不多说,我们开始步入正题:

因为本题只能买入和卖出一次,所以我们首先可以先定义两个变量max(用来记录利润最大值),min(用来记录当天之前的最低价格)并将第一天的价格赋值给min,然后遍历数组,每进行一次for循环,比较max和当天价格减去min的最大值,将较大的赋值给max,接下来比较min与当天价格的最小值,并赋值给min。最后循环结束输出max即可。话不多说,直接上代码!

三、代码实现

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        int max=0,min=in.nextInt();
        for(int i=1;i<n;i++){
            int cur=in.nextInt();
            max=Math.max(max,cur-min);
            min=Math.min(min,cur);
        }
        System.out.println(max);
    }
}

买卖股票的最好时机(二)

一、题目链接:买卖股票的最好时机(二)_牛客题霸_牛客网

二、解题思路 

与第一题一样,本题也会用到贪心。因为可以无限次交易,所以我们每找到价格上升的区间,就将结果res加上这段区间的差值,具体如图所示:

总而言之,如果价格上升,res加上差值,否则直接跳过。 

三、代码实现 

import java.util.Scanner;


public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        int[] arr=new int[n];
        int res=0;
        for(int i=0;i<n;i++){
            arr[i]=in.nextInt();
        }
        for(int i=1;i<n;i++){
            if(arr[i]-arr[i-1]>0){
                res+=arr[i]-arr[i-1];
            }
        }
        System.out.println(res);
    }
}

http://www.dtcms.com/a/108012.html

相关文章:

  • 【每日算法】Day 15-1:哈希表与布隆过滤器——海量数据处理与高效检索的核心技术(C++实现)
  • ollama本地部署大模型(命令行)
  • Eclipse IDE
  • 基本元素定位(findElement方法)
  • 【嵌入式Linux】U-Boot源码分析
  • JMeter接口自动化发包与示例
  • Windows连接服务器Ubuntu_MobaXterm
  • 【Mysql】基础(函数,约束,多表查询,事务)
  • PHP语言基础
  • 深入解析C++类:面向对象编程的核心基石
  • 前端css+html面试题
  • 面向对象分析与设计的多过程多层级实现
  • Generic Mapping Tools(GMT):开源的地球、海洋和行星科学的工具箱、Python与matlab包
  • 从零构建大语言模型全栈开发指南:第四部分:工程实践与部署-4.3.2知识库增强与外部API集成(代码示例:HTTP节点与检索增强生成)
  • uniapp 微信小程序 使用ucharts
  • 实战打靶集锦-36-Deception
  • 封装可拖动弹窗(vue jquery引入到html的版本)
  • SQL语句(一)—— DDL
  • [Lc6_记忆化搜索] 最长递增子序列 | 矩阵中的最长递增路径
  • 【大模型系列篇】大模型基建工程:使用 FastAPI 构建 SSE MCP 服务器
  • 14-SpringBoot3入门-MyBatis-Plus之CRUD
  • 树莓派超全系列文档--(15)无需交互使用raspi-config工具其二
  • clickhouse集群版本部署文档
  • jenkins 参数化发布到服务器 publish over ssh、label、Parameterized publishing
  • 基于DeepSeek、ChatGPT支持下的地质灾害风险评估、易发性分析、信息化建库及灾后重建
  • js实现一个可指定超时时间的异步函数重试机制
  • tomcat 目录结构组成
  • python的def
  • 计算机网络 第二章:应用层(1)
  • 结构体补充:位段