首页 > 编程语言 >(算法)买卖股票的最佳时机————<贪心算法>

(算法)买卖股票的最佳时机————<贪心算法>

时间:2024-11-14 17:46:23浏览次数:3  
标签:prevMin num min int ret 算法 最佳时机 prices 贪心

1. 题⽬链接:121.买卖股票的最佳时机

2. 题⽬描述:

3. 解法(贪⼼):

贪⼼策略:

由于只能交易⼀次,所以对于某⼀个位置i ,要想获得最⼤利润,仅需知道前⾯所有元素的最⼩ 值。然后在最⼩值的位置「买⼊」股票,在当前位置「卖出」股票即可。

C++算法代码: 

class Solution 
{
public:
    int maxProfit(vector<int>& prices) 
    {
        //返回值,第i位前的最小值
        int ret=0,min_num=prices[0];
        for(int i=1;i<prices.size();i++)
        {
            //更新最大差值
            if(prices[i]>min_num)
            {
                ret=max(ret,prices[i]-min_num);
            }
            //更新第i位前的最小值
            min_num=min(min_num,prices[i]);
        }
        return ret;
    }
};

Java算法代码:

class Solution
{
	public int maxProfit(int[] prices)
	{
		int ret = 0; // 记录最终结果 
		for (int i = 0, prevMin = Integer.MAX_VALUE; i < prices.length; i++)
		{
			ret = Math.max(ret, prices[i] - prevMin); // 先更新结果 
			prevMin = Math.min(prevMin, prices[i]); // 再更新最⼩值 
		}
		return ret;
	}
}

标签:prevMin,num,min,int,ret,算法,最佳时机,prices,贪心
From: https://blog.csdn.net/2301_79580018/article/details/143777223

相关文章

  • 代码随想录算法训练营第三十天| 452. 用最少数量的箭引爆气球 、435. 无重叠区间 、76
    452.用最少数量的箭引爆气球思路:以前做过最大不相交子序列的题,这次也是往这根据某一端排序的思路想的,排序后如下图,只需要维护一个公共序列的右边界r就可以了,下一次判断时,只需要判断子区间的左边是否小于r。这个题有点坑的是使用Arrays排序,如果使用昨天的方法:Arra......
  • cmu15545笔记-排序和聚合算法(Sorting&Aggregation Algorithms)
    目录概述排序堆排序外部归并排序使用索引聚合操作排序聚合哈希聚合概述本节和下一节讨论具体的操作算子,包括排序,聚合,Join等。排序为什么需要排序操作:关系型数据库是无序的,但是使用时往往需要顺序数据(OrderedBy,GroupBy,Distinct)。主要矛盾:磁盘很大:要排序的数据集很大,内......
  • 跟贪心杂题爆了
    基本都抄的,窝怎么这么渺小啊AGC007F这种匹配可行性基本都是从后往前贪心,这样没有后效性。而我们考虑原序列的每个字符都对应了最后序列的一个区间(如果用上)。考虑把整个变化过程写成一个矩阵,并且将每个字符染上不同颜色。像这样:容易发现对于一条新的路径,我们尽可能与上一条......
  • 智慧园区算法视频分析服务器垃圾桶溢满园区算法详解及应用
    在数字化转型的浪潮中,视频监控技术已成为各行各业提升安全管理、优化运营效率的重要工具。特别是对于城管、环卫、教育、水利、园区、小区等多样化的应用场景,一个集成化、智能化的视频监控解决方案显得尤为关键。智慧园区算法视频分析服务器不仅能够提供高清视频监控接入,还能进行......
  • 代码随想录算法训练营 | 200.岛屿的数量
    岛屿的数量题目链接:https://leetcode.cn/problems/number-of-islands/此题目要点:dfs和bfs都可以解决此题,但是使用dfs代码会更加的简洁首先对grid进行遍历,每一个节点都进行检查,判断是否是1(陆地)如果是,则进行dfs深搜,并将所有搜到的岛屿节点全置为0,表示此块岛屿已经被搜过了,防......
  • 学习笔记(算法)——路径之谜(蓝桥杯官网)(dfs,回溯)
    学习+1学习目标:蓝桥杯省奖学习内容:每日一题题目源于蓝桥杯官网题目描述解题思路1.先定义最大行列值,输入行列值,行列靶数,答案数组,访问标记数组,辅助数组2.定义dfs(深度优先搜索)函数2.1记录当前位置2.2如果到达右下角&&行列只剩一靶2.2.1做循环:如果前面的靶子都打......
  • 头歌实验06:处理机调度与死锁--银行家算法
     第一关 :安全性检查纯享版:#include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=100;intn,m;//进程数和资源类别数intresoure[N];//m类资源的总数值intMax[N][N],now[N][N],need[N][N];//进程对m类资源的最大需求......
  • MATLAB实现PSO-KELM粒子群算法优化核极限学习机时间序列预测
    目录项目背景介绍...1项目目标与意义...1项目挑战...1项目特点与创新...1项目应用领域...2项目效果预测图程序设计...2项目模型架构...2项目模型描述...2项目模型算法流程图...4项目结构设计...5项目部署与应用...5项目扩展...5项目应该注意事项...5......
  • MATLAB实现NGO-SVM北方苍鹰算法优化支持向量机多输入单输出回归预测(多指标,多图)
    目录项目背景介绍...1项目目标与意义...1项目挑战...2项目特点与创新...2项目应用领域...3项目效果预测图程序设计...3项目模型架构...4项目模型描述...4项目模型算法流程图...5项目结构设计...5项目部署与应用...6项目扩展...6项目应该注意事项...6......
  • R语言使用caret包构建岭回归模型实战,构建回归模型、通过method参数指定算法名称、通过
    R语言使用caret包构建岭回归模型实战,构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程目录R语言使用caret包构建岭回归模型(RidgeRegression )构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程 #导入包和库#仿......