首页 > 编程语言 >算法训练day35 122.55.45.

算法训练day35 122.55.45.

时间:2023-10-18 15:56:15浏览次数:45  
标签:45 return nums int day35 122.55 prices size

算法训练day35 122.55.45.

122.买卖股票的最佳时机II

题目

122. 买卖股票的最佳时机 II - 力扣(LeetCode)

题解

代码随想录 (programmercarl.com)

  • 将看似复杂的任务分解成小任务 --->利润可以视作每连续两天价格差的和 --->只取正利润

  • class Solution
    {
    public:
        int maxProfit(vector<int> &prices)
        {
            int result = 0;
            for (int i = 1; i < prices.size(); i++)
            {
                result += (prices[i] - prices[i - 1] > 0 ? prices[i] - prices[i - 1] : 0);
            }
            return result;
        }
    };
    

55. 跳跃游戏

题目

55. 跳跃游戏 - 力扣(LeetCode)

题解

代码随想录 (programmercarl.com)

  • 步数组合的方式有许多种,只要最后可覆盖的范围可以到达即返回true

  • class Solution
    {
    public:
        bool canJump(vector<int> &nums)
        {
            int cover = 0;
            if (nums.size() == 1)
                return true;
            for (int i = 0; i <= cover; i++)
            {
                cover = max(i + nums[i], cover);
                if (cover >= nums.size() - 1)
                    return true;
            }
            return false;
        }
    };
    

45.跳跃游戏II

题目

45. 跳跃游戏 II - 力扣(LeetCode)

题解

代码随想录 (programmercarl.com)

  • 使用覆盖范围判断,当更新的一个覆盖范围达到终点时,便是最后一步;

  • 相应的,到达此范围的前一次范围更新就是对应着前一步,以此实现最小步数到达最远距离

  • class Solution
    {
    public:
        int jump(vector<int> &nums)
        {
            int curDistance = 0;
            int ans = 0;
            int nextDistance = 0;
            for (int i = 0; i < nums.size() - 1; i++)
            {
                nextDistance = max(nums[i] + i, nextDistance);
                if (i == curDistance)
                {
                    curDistance = nextDistance;
                    ans++;
                }
            }
            return ans;
        }
    };
    

标签:45,return,nums,int,day35,122.55,prices,size
From: https://www.cnblogs.com/High-source/p/17772558.html

相关文章

  • Qt/C++开源作品45-CPU内存显示控件/和任务管理器一致
    一、前言在很多软件上,会在某个部位显示一个部件,专门显示当前的CPU使用率以及内存占用,方便用户判断当前程序或者当前环境中是否还有剩余的CPU和内存留给程序使用,在不用打开任务管理器或者资源查看器的时候直接得知当前系统的运行情况。尤其是视频监控系统,如果64路全开,肯定很占用CP......
  • P9745 「KDOI-06-S」树上异或 题解
    P9745「KDOI-06-S」树上异或题解\(x_i=0\)这题一看就不是很可做,先考虑部分分。对于一条链的情况,我们可以枚举上一个断边的位置,然后转移。一看数据范围,估计和值域有关,所以考虑\(x_i=1\)的部分分,如果全部点权都是1,那么一种方案只有0和1两种取值,考虑这个状态设计:\(f......
  • 星嵌OMAPL138+国产FPGA工业开发板 中科亿海微 EQ6HL45系列FPGA 替代spartan-6
    1XQ138F-EVM评估板简介基于TIOMAP-L138(定点/浮点DSPC674x+ARM9)+FPGA处理器的开发板;OMAP-L138是TI德州仪器的TMS320C6748+ARM926EJ-S异构双核处理器,主频456MHz,高达3648MIPS和2746MFLOPS的运算能力;FPGA采用中科亿海微eHiChip6家族EQ6HL45系列芯片,或XilinxSpartan-6系列芯......
  • leetcode2845. 统计趣味子数组的数目
    题解classSolution{public:longlongcountInterestingSubarrays(vector<int>&nums,intmodulo,intk){inta[100010];unordered_map<int,int>mp;mp[0]=1;longlongans=0;intpre=0;......
  • QOJ # 4588. Feeder Robot
    题面传送门有一个机器人初始在\(A\)点,每次会向左向右随机移动,并给所到位置的\(B\)值\(+1\),包括起点。当加\(m\)次后停止,设终点为\(t\),问最后\((t,B)\)二元组总共有多少种可能。\(n\leq10^5,m\leq2\times10^5\)。首先我们需要考虑如何找到一个\((t,B)\)二元组合......
  • P7450 [THUSCH2017] 巧克力
    P7450[THUSCH2017]巧克力题意给定一张网格图,每个格子有两个权重,\((a,c)\),我们希望找出一个不包含\(c=-1\)的联通块并且\(a\)的中位数最大,同时还要包含\(k\)种颜色。题解套路题都是nb题。首先\(k\)比较小,我们可以考虑一个类似斯坦纳树的\(dp\)。\(f_{i,j,S}\)表......
  • 6450: levil与时间点 map
    描述 levil有T个时间点会对一个长度未知数组进行操作,开始时数组里仅有一个元素x,接下来每个时间点,levil都会进行下面的操作中的一种。操作一:输出当前数组中最大元素的最大因子。操作二:将一个新的数y加入数组。操作三:输出数y在数组中有几个。操作四:将数y从数组中删除一个。......
  • 宏蜂窝基站便携测试设备设计原理图:FMCJ450-基于ADRV9009的双收双发射频FMC子卡
    FMCJ450-基于ADRV9009的双收双发射频FMC子卡一、板卡概述       ADRV9009是一款高集成度射频(RF)、捷变收发器,提供双通道发射器和接收器、集成式频率合成器以及数字信号处理功能。这款IC具备多样化的高性能和低功耗组合,FMC子卡为2路输入,2路输出的射频收发卡,......
  • [ABC245G] Foreign Friends 题解
    [ABC245G]ForeignFriends题解想法考虑所有颜色相同的弱化版。这种情况下,只需要把所有特殊点都推入队列之后跑多源Dijkstra即可。思路正解与上述做法大致相同。如果有颜色限制,那么可以考虑这个神仙思路:把所有特殊点的颜色用二进制表示,对于每一位,这一位是\(0\)的特殊......
  • cmu15445面经总结
    lru与lru-k区别LRU(最近最少使用替换算法)思想:如果数据最近被访问过,那么将来被访问的几率也更高。实现:使用一个栈,新页面或者命中的页面则将该页面移动到栈底,每次替换栈顶的缓存页面。优点:LRU算法对热点数据命中率是很高的。缺点:1.缓存颠簸,当缓存(1,2,3)满了,之后数据访问(0,3,2,1,0,3......