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

408算法题leetcode--第25天

128. 最长连续序列

  • 128. 最长连续序列
  • 思路:如注释
  • 时间和空间:O(n)
  • unordered_set: 无序容器,只存key且不重复
class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        // 去重
        // 判断每个数是否为序列开头,如果不是就跳过,如果是就往后遍历直到序列结束
        unordered_set<int>sets;
        for(auto it : nums){
            sets.insert(it);
        }
        int ret = 0;
        for(auto it : sets){
            if(!sets.count(it - 1)){
                // 是开头,往后遍历
                int t = 1;
                while(sets.count(it + 1)){
                    it++;
                    t++;
                }
                ret = max(ret, t);
            }
        }
        return ret;
    }
};

739. 每日温度

  • 739. 每日温度
  • 时间和空间:O(n)
  • 单调栈:通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了;空间换时间;用来存放之前遍历过的元素;求比自己大的元素用递增栈(从栈顶到底部);结果数组:栈顶元素弹出时,用当前下标减去栈顶元素的下标即结果
class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        stack<int>stk;  // 记录下标,因为输出下标
        vector<int>v(temperatures.size(), 0);
        stk.push(0);
        int size = temperatures.size();
        for(int i = 1; i < size; i++){
            // 出栈,输出结果
            while(!stk.empty() && temperatures[i] > temperatures[stk.top()]){
                v[stk.top()] = i - stk.top();
                stk.pop();
            }
            stk.push(i);
        }
        return v;
    }
};

http://www.kler.cn/news/335742.html

相关文章:

  • 计算机视觉与深度学习 | 读取、处理和写入激光雷达点云数据(附matlab代码)
  • 设计模式之装饰器模式(Decorator)
  • 动态SLAM总结二
  • AI量化策略 篇三:股票开源框架精选
  • 微信小程序和抖音小程序的分享和广告接入代码
  • 物联网实训室建设的必要性
  • Koa学习
  • 论文阅读:LLaVA-OneVision: Easy Visual Task Transfer
  • 第168天:应急响应-ELK 日志分析系统Yara规则样本识别特征提取规则编写
  • CentOS 7 系统中安装与配置 Telnet 服务详解(使用非root用户登录)
  • 浅谈stm32的GPIO引脚配置模式
  • Android SystemUI组件(09)唤醒亮屏 锁屏处理流程
  • mysql学习教程,从入门到精通,SQL 复制表(36)
  • 智能制造领域的系统都有啥,MES、APS、PLC、SCADA等
  • 滚雪球学Oracle[1.2讲]:Oracle数据库架构基础
  • Python+ffmpeg实现字幕视频合并
  • UNICODE已定义,_tcs*函数却不是宽字符函数问题
  • tldr命令介绍
  • 【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL25
  • SpringBoot+ElasticSearch7.12.1+Kibana7.12.1简单使用