首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数组中的最长连续子序列
[编程题]数组中的最长连续子序列
热度指数:37816
时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)
数据范围:
,数组中的值满足
要求:空间复杂度
,时间复杂度
示例1
输入
[100,4,200,1,3,2]
输出
4
示例2
输入
[1,1,1]
输出
1
备注:
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(9)
邀请回答
收藏(296)
分享
提交结果有问题?
109个回答
73篇题解
开通博客
数据结构和算法
发表于 2021-07-06 09:18:09
精华题解
先排序 因为数组是无序的,如果要想找出最长的连续序列(这里序列的顺序可以打乱),我们最容易想到的就是先对数组进行排序,然后再查找。 使用一个变量count来记录当前有序序列的长度。 如果当前元素比前一个大1,说明他们可以构成连续的序列,count就加1。 如果相等就跳过。 否则就不能构成连续的
展开全文
LaN666
发表于 2020-12-06 20:29:44
题目思路:给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)。 例如: 输入:[100,4,200,1,3,2]那么很明显我们能够知道1234这是连续的,所以最长的子序列则为4。 所以这道题目的关键就是找到连续的子序列。 方法一:使
展开全文
LifelongCode
发表于 2021-01-16 14:17:33
方法1:排序方法2:Set方法3:哈希表方法4:并查集 解法1:排序+统计 排序数组 统计连续序列长度:遇到重复元素跳过;遇到不连续元素重置;遇到连续元素加一并更新max import java.util.*; public class Solution { /** * max incre
展开全文
yShane
发表于 2021-11-05 16:21:46
数组中的最长连续子序列python实现: # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # max increasing subsequence # @param arr int整型一维数组 the array # @return int整型 # class
展开全文
阿尼亚瓦库瓦库
发表于 2021-06-27 12:23:44
import java.util.*; public class Solution { /** * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型
展开全文
小陆要懂云
发表于 2021-08-15 15:26:29
int MLS(vector<int>& arr) { // write code here if(arr.empty()) return 0; int longest=1; int coun
展开全文
青叶摩卡
发表于 2023-06-06 09:28:09
class Solution { public: /** * max increasing subsequence * @param arr int整型vector the array * @return int整型 */ int MLS(ve
展开全文
Surtr1
发表于 2024-05-13 22:30:53
class Solution { public: int MLS(vector<int>& arr) { // write code here if(arr.empty()) return 0; int l
展开全文
WA_on_test_233
发表于 2021-07-17 16:17:53
认真读题可以发现,本题中数之间的相对位置并不重要,于是我们可以想到将它们按权值排序。同时,由于相同的数字并不能同时出现在答案中,所以可将排序后的数列去重。 考虑枚举排序后的数列,假设当前枚举到 ,记 表示以 为结尾的最长连续子序列。可以发现,如果 ,那么该序列的长度可以 ,否则只能重新开始计算。
展开全文
执子一白
发表于 2020-12-09 17:59:58
认认真真写了了并查集没过,超时了哈哈。看了下大家的思路,嗯果然 简简单单用个 Set 就行 import java.util.*; public class Solution { /** * max increasing subsequence * @param ar
展开全文
牛客449560839号
发表于 2021-08-23 21:48:04
package org.example.test; public class MLSTest { public static void main(String[] args) { int[] arr = {1, 2, 3, 5, 6, 7, 8, 9, 1, 2, 3,
展开全文
问题信息
数组
并查集
难度:
109条回答
296收藏
6605浏览
热门推荐
通过挑战的用户
查看代码
😭呜呜
2023-02-26 11:08:58
是长草君
2022-10-22 11:54:53
Endinggg
2022-09-18 08:03:44
圣诞小子
2022-09-16 09:50:44
coldzero11
2022-09-14 14:14:23
相关试题
欧拉回路
图
思维
并查集
评论
(79)
还是畅通工程
图
高级结构
贪心
并查集
评论
(70)
畅通工程
图
高级结构
并查集
评论
(67)
电路板布线的时候尽量采用( )折线布线
PCB
评论
(1)
图中U和I分别为
电路基础
评论
(1)
数组中的最长连续子序列
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ public int MLS (int[] arr) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型vector the array * @return int整型 */ int MLS(vector
& arr) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # max increasing subsequence # @param arr int整型一维数组 the array # @return int整型 # class Solution: def MLS(self , arr ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ public int MLS (List
arr) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ function MLS( arr ) { // write code here } module.exports = { MLS : MLS };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # max increasing subsequence # @param arr int整型一维数组 the array # @return int整型 # class Solution: def MLS(self , arr: List[int]) -> int: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ func MLS( arr []int ) int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @param arrLen int arr数组长度 * @return int整型 */ int MLS(int* arr, int arrLen ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # max increasing subsequence # @param arr int整型一维数组 the array # @return int整型 # class Solution def MLS(arr) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ def MLS(arr: Array[Int]): Int = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ fun MLS(arr: IntArray): Int { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ public int MLS (int[] arr) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ export function MLS(arr: number[]): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ func MLS ( _ arr: [Int]) -> Int { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ pub fn MLS(&self, arr: Vec
) -> i32 { // write code here } }
[100,4,200,1,3,2]
4
[1,1,1]
1