最长连续序列

server/2024/11/19 9:55:31/

题目描述

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 算法解决此问题。

示例 1:

输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

示例 2:

输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9

 代码实现

import java.util.Arrays;
class Solution {public int longestConsecutive(int[] nums) {if(nums.length == 0){return 0;}Set set = new HashSet<>();for (int i = 0; i < nums.length; i++) {set.add(nums[i]);}int n=set.size();Object[] array=set.toArray(new Object[n]);Arrays.sort(array);int max_serise = 1;int temp = 1;for(int i=1;i<array.length;i++){int num1 =Integer.parseInt(array[i].toString());int num2 =Integer.parseInt(array[i-1].toString())+1;if(num1==num2){temp=temp+1;if(temp>max_serise){max_serise=temp;}}else{temp=1;}}return max_serise;}
}

官方思路:

class Solution {public int longestConsecutive(int[] nums) {Set<Integer> num_set = new HashSet<Integer>();for (int num : nums) {num_set.add(num);}int longestStreak = 0;for (int num : num_set) {if (!num_set.contains(num - 1)) {int currentNum = num;int currentStreak = 1;while (num_set.contains(currentNum + 1)) {currentNum += 1;currentStreak += 1;}longestStreak = Math.max(longestStreak, currentStreak);}}return longestStreak;}
}

注意:集合arrayList默认返回Object类,而不是String类 !!!!

incompatible types: Object cannot be converted to String-CSDN博客

查漏补缺:

java中object类对象转换成int对象的两种方法

1.先把object对象转换成String,在用Inetger里的parseInt转成int

Objcet obj;
int a= Integer.parseInt(obj.toString());

2.先把object强转成Long,再转为int

Object obj ;
Long long = (Long) obj;
int a= long.intValue();

其他补充 

Java中List,Set,数组的互相转换_java 1.8 list转set-CSDN博客

Java中Arrays.sort()的三种常用用法(自定义排序规则)_arrays.sort自定义排序-CSDN博客


http://www.ppmy.cn/server/143146.html

相关文章

插入排序——直接插入排序

插入排序——直接插入排序 7.4 插入排序——直接插入排序插入排序基本思想&#xff1a;直接插入排序参考程序直接插入排序的特性总结 7.4 插入排序——直接插入排序 插入排序基本思想&#xff1a; 直接插入排序是一种简单的插入排序法&#xff0c;其基本思想是&#xff1a; …

reactflow 中 useNodesState 模块作用

1. 节点状态管理核心功能 useNodesState是一个关键的钩子函数&#xff0c;用于专门管理节点&#xff08;Nodes&#xff09;的状态。节点是流程图的核心元素&#xff0c;它们可以代表各种实体&#xff0c;如流程中的任务、系统中的组件或者数据结构中的元素。 useNodesState提…

常见的网络协议汇总(涵盖了不同的网络层次)

网络层协议 IP协议&#xff1a;IP指网际互连协议&#xff08;Internet Protocol&#xff09;&#xff0c;是TCP/IP体系中的网络层协议。IP协议包括IPv4和IPv6&#xff0c;用于为数据包提供源地址和目标地址&#xff0c;从而实现网络通信。ICMP协议&#xff1a;ICMP&#xff08…

OpenHarmony-2.DeviceInfo适配

DeviceInfo适配说明 1.启动子系统设备信息说明 2.OHOS 2.1.OHOS 固定值参数适配 OHOS 固定值参数: const.ohos.version.security_patch const.ohos.releasetype const.ohos.apiversion const.ohos.fullname适配说明&#xff1a; OHOS 固定值参数由OHOS系统填充&#xff0…

解决 electron 打包后部分电脑报错 Error: Dynamic Symbol Retrieval Error: Win32 error 126

electron 开发使用了 ffi-napi 来调用了 C 函数的 dll 文件&#xff0c;在打包上线后&#xff0c;发现某些电脑上运行之后一直报错 Error: Dynamic Symbol Retrieval Error: Win32 error 126 如图所示&#xff1a; 排查了很多原因&#xff0c;有说是路径问题&#xff0c;有说…

Lua资料

Lua脚本语言 cheet sheet Lua & c Lua与C API交互全面解析 Lua语言&#xff1a;和C语言的交互 Lua进阶用法之Lua和C的接口设计 Lua C API 简介 C和Lua之间的相互调用 深入Lua&#xff1a;用户数据userdata 基本数据类型 之 UserData calling-lua-from-c/ Embedding Lua i…

OPC UA 服务器

OPC UA&#xff08;OPC Unified Architecture&#xff09; 是一种平台无关的通信协议&#xff0c;广泛用于工业自动化领域。它由 OPC 基金会开发&#xff0c;主要设计目标是实现安全、可靠和互操作性的数据交换&#xff0c;适用于各种设备和系统之间的通信。 什么是 OPC UA 服务…

剧本杀门店预约小程序,解锁沉浸式推理体验

一、开发背景 剧本杀作为一种热门娱乐游戏&#xff0c;深受大众的欢迎&#xff0c;但随着市场的快速发展&#xff0c;竞争也在不断加大&#xff0c;对于剧本杀线下商家来说面临着发展创新。 剧本杀线下门店数量目前正在逐渐增加&#xff0c;竞争激烈&#xff0c;而门店的获客…