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

128. Longest Consecutive Sequence

如果n-1存在于数组中,则以n开头的连续序列可以忽略掉,因为以n-1开头的连续序列的长度肯定至少比以n开头的连续序列长1个元素。这是本题的关键。然后利用哈希表查询元素是否在数组中。

class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        int max_len = 0;
        std::unordered_set<int> hash_table;
        for(auto ie:nums) hash_table.emplace(ie);
        for(auto ie:hash_table){
            int current_len = 0;
            if(hash_table.find(ie-1) == hash_table.end()){
                int current_len = 1;
                while(hash_table.find(ie+1) != hash_table.end()){
                    current_len++;
                    ie++;
                }
                max_len = std::max(max_len,current_len);
            }
        }
        return max_len;
    }
};

第7行遍历hash_table而不是遍历原始数组,可以避免存在大量重复元素的情况下运行超时。

相关文章:

  • 力扣222. 完全二叉树的节点个数(Java实现)
  • Java 生成钻石*
  • 【高项】信息系统项目管理师(八)项目质量管理【3分】
  • 主流的Java生态下权限管理框架
  • 查看linux系统信息
  • 【linux】scp和rsync
  • PHP转GO Day2 数据类型与控制结构实践(开发计算器)
  • BRAM消耗与FIFO的关系:有效利用FPGA资源的策略
  • 面试整理--一个报告生成的方案解析
  • excel文件有两列,循环读取文件两列赋值到字典列表。字典的有两个key,分别为question和answer。将最终结果追加到json文件
  • C语言:字符串去特定字符
  • UGO和ACL
  • 从关键词到权重:TF-IDF算法解析
  • Atom of Thoughts for Markov LLM Test-Time Scaling论文解读
  • 凸集和凸函数
  • Google C++编码规范指南(含pdf)
  • python主成分分析法1
  • MyBatis 配置文件解析使用了哪些设计模式
  • 在 Dojo 框架中define、declare 和 require的区别
  • 【自用】NLP算法面经(5)
  • 专家:家长要以身作则,孩子是模仿者学习者有时也是评判者
  • 布局50多个国家和地区,我国科技型企业孵化器数量全球第一
  • 一图看懂|印巴交火后,双方基地受损多少?
  • 国际奥委会举办研讨会,聚焦如何杜绝操纵比赛
  • 体坛联播|博洛尼亚时隔51年再夺意杯,皇马逆转马洛卡
  • 光明日报:家长孩子共同“息屏”,也要保证高质量陪伴