首页 > 其他分享 >128. 最长连续序列C

128. 最长连续序列C

时间:2024-02-21 20:00:36浏览次数:27  
标签:head divide nums int 节点 序列 tail 128 最长

o(n)现在水平不够。

采用先快排序,再找。O(nlogn),注意每次划分枢纽选择中间节点(中间节点和首节点互换)

int divide(int* nums,int head,int tail){
    int x=nums[(head+tail)/2];
    nums[(head+tail)/2]=nums[head];
    nums[head]=x;
    int t=nums[head];
    while(head <tail){
        while(head <tail && nums[tail] > t) tail--;
        if(head <tail) nums[head++]=nums[tail];
        while(head < tail && nums[head] < t) head++;
        if(head <tail) nums[tail--]=nums[head];
    }
    nums[head]=t;
    return head;
}

void quicksort(int* nums,int head,int tail){
    if(head >= tail) return ;
    int t=divide(nums,head,tail);
    if(t>head) quicksort(nums,head,t-1);
    if(t<tail) quicksort(nums,t+1,tail);
}

int longestConsecutive(int* nums, int numsSize) {
    if(numsSize==0) return 0;
    quicksort(nums,0,numsSize-1);
    int max=1;
    int now=1;
    for(int i=0;i<numsSize-1;i++){
        if(nums[i+1]==nums[i]){
            continue;
        }        
        if(nums[i+1]-nums[i]==1){
            now++;
            if(now >max) max=now;
        }else{
            now=1;
        }
    }
    return max;
}

结果:

标签:head,divide,nums,int,节点,序列,tail,128,最长
From: https://www.cnblogs.com/llllmz/p/18026109

相关文章

  • 读论文-基于序列/会话的推荐:挑战,方法,应用和机遇(Sequential/Session-based Recommend
    前言今天读的论文为一篇于2022年7月7日发表在第45届国际ACM信息检索研究与发展会议论文集(Proceedingsofthe45thInternationalACMSIGIRConferenceonResearchandDevelopmentinInformationRetrieval.)的论文,文章主要讲述了序列推荐系统(SRSs)和基于会话的推荐系统(SBRSs......
  • 一个使用公式化序列分类的EAL学术写作辅助环境
    (AnassistiveenvironmentforEALacademicwriting usingformulaicsequencesclassification)https://doi.org/10.1080/10494820.2020.1789670一、摘要研究目的:英语作为第二语言(EAL)的新手作者写一篇英语研究文章是一项具有挑战性的任务,需要句子和意义层面上的经验和训......
  • Weblogic XMLDecoder反序列化漏洞(CVE-2017-10271)复现
    0x00漏洞简介OracleFusionMiddleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。OracleWebLogicServer是其中的一个适用于云环境和传统环境的应用服务器组件。OracleFusionMiddleware中的Oracle......
  • Apache Shiro反序列化漏洞 (CVE-2016-4437)复现
    0x00漏洞简介ApacheShiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。ApacheShiro1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触......
  • P4555 [国家集训队] 最长双回文串
    题目链接:https://www.luogu.com.cn/problem/P4555题解:要找一个由两个回文组成字符串,一定有一个分割的位置,将两个回文串分开,设分割x,x+1,可能成为最后答案的值一定是左边的最长回文串和右边的最长的回文串长度之和。   回文中心一个<x,一个>x+1且一定包含x和x+1。如果最......
  • 时间序列异常检测常见方法和代码
    0.介绍时间序列的异常检测是在序列中识别明显偏离正常情况的数据,从而知晓仪器损坏、欺诈活动、系统故障或其他意外事件。我们介绍监督和无监督学习方法探索各种异常检测技术。1.了解异常检测异常通常称为异常值或异常值,是显着偏离数据集中的预期或正常行为的数据点或观察结果......
  • prufer序列
    prufer序列是一种树形结构和数列相互映射的规则与其他序列的区别dfs序,将一棵子树映射为一段连续的区间二叉搜索树,中序遍历是单调不减的序列prufer序列:1.是一个和树的双射,唯一对应一棵树2.包含结点的度数和连接关系使用场景将构造树转化为构造序列,将统计树转化为统计序列......
  • 深度学习在时间序列预测的总结和未来方向分析
    2023年是大语言模型和稳定扩散的一年,时间序列领域虽然没有那么大的成就,但是却有缓慢而稳定的进展。Neurips、ICML和AAAI等会议都有transformer结构(BasisFormer、Crossformer、Invertedtransformer和Patchtransformer)的改进,还出现了将数值时间序列数据与文本和图像合成的新体......
  • R语言k-Shape时间序列聚类方法对股票价格时间序列聚类|附代码数据
    原文链接:http://tecdat.cn/?p=3726最近我们被客户要求撰写关于时间序列聚类的研究报告,包括一些图形和统计输出。本文我们将使用k-Shape时间序列聚类方法检查与我们有业务关系的公司的股票收益率的时间序列企业对企业交易和股票价格在本研究中,我们将研究具有交易关系的公司的......
  • Pandas处理时间序列数据
    Pandas时序处理中最常见的两种数据类型为datetime和timedelta。flowchartTBdatetime--data-->2024-01-01datetime--time-->10:00:00datetime顾名思义就是既有日期date也有时间time,表示一个具体的时间点(时间戳)。timedelta则表示两个时间点之间的差,比如2024-0......