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

LeetCode -- Longest Consecutive Sequence

题目描述:


Given an unsorted array of integers, find the length of the longest consecutive elements sequence.


For example,
Given [100, 4, 200, 1, 3, 2],
The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4.


Your algorithm should run in O(n) complexity.




就是在一个没有排序好的序列中找到最大的连续子序列。


思路:
1.本题关键是使用一种高效的数据结构,拿完成这个排序。选择SortedSet,用于内部实现为平衡树,因此增删查时间复杂度均为O(logN)
2.使用c和max分别统计当前连续次数以及最大连续次数即可。


实现代码:



public class Solution {
    public int LongestConsecutive(int[] nums) {
        if(nums.Length < 1){
    		return 0;
    	}
    	
        var lst = new SortedSet<int>(nums);
    	var max = 1;
    	var c = 1;
    	int? pre = null;
    	foreach(var n in lst){
    		if(!pre.HasValue){
    			pre = n;
    			continue;
    		}
    		else{
    			if(n - pre == 1){
    				c++;
    				if(c > max){
    					max = c;
    				}
    			}
    			else{
    				c = 1;
    			}
    			pre = n;
    		}
    	}
    	
    	return max;
    }
}


相关文章:

  • Flex与.NET互操作(八):使用FluorineFx网关实现远程访问
  • LeetCode -- Missing Number
  • [Windows编程] Windows 7 对多核的支持
  • LeetCode -- Palindrome Linked List
  • SSH客户端设置环境变量
  • LeetCode -- Search for a Range
  • 老子生平
  • LeetCode -- Simplify Path
  • 老子著述
  • LeetCode -- Single Number
  • LeetCode -- Find Peak Element
  • 老子思想
  • LeetCode -- Add Two Numbers
  • LeetCode – Combination Sum
  • ArcGIS Server Java ADF 案例教程 21
  • 【Leetcode】104. 二叉树的最大深度
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • ECS应用管理最佳实践
  • ES6核心特性
  • exif信息对照
  • Fastjson的基本使用方法大全
  • Java 网络编程(2):UDP 的使用
  • java取消线程实例
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • js数组之filter
  • Linux Process Manage
  • PAT A1120
  • Sass 快速入门教程
  • spring boot下thymeleaf全局静态变量配置
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • storm drpc实例
  • vue-cli3搭建项目
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 容器服务kubernetes弹性伸缩高级用法
  • 实现菜单下拉伸展折叠效果demo
  • 实现简单的正则表达式引擎
  • 中文输入法与React文本输入框的问题与解决方案
  • UI设计初学者应该如何入门?
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #162 (Div. 2)
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)WCF的Binding模型
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (九)信息融合方式简介
  • (转)jQuery 基础
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .apk 成为历史!
  • .chm格式文件如何阅读
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .net开发时的诡异问题,button的onclick事件无效
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • @Pointcut 使用
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell