最长的可整合子数组_python3

最长的可整合子数组的长度

http://www.nowcoder.com/questionTerminal/677a21987e5d46f1a62cded9509a94f2

感觉题目有点歧义,子数组可以不连续,所以有重复数据也可以去重排序后计算
1、731 ms 4088K

def check(l):
    return len(l) == (l[-1] - l[0] + 1)

while True:
    try:
        n = int(input())
        l = list(map(int, input().split()))
        l = sorted(list(set(l)))
        maxL = 1
        n = len(l)
        for i in range(n-1):
            for j in range(i+1, n):
                if check(l[i:j+1]):
                    maxL = max(maxL, j-i+1)
                else:
                    break
        print(maxL)
    except EOFError:
        break

2、214 ms 3940K

while True:
    try:
        n = int(input())
        l = list(map(int, input().split()))
        l.sort()
        maxL = 1
        if n == 2 and l[1]-l[0] == 1:
            maxL = 2
        else:
            for i in range(n-2):
                mi = l[i]
                ma = l[i+1]
                if mi == ma or ma - mi > 1:
                    continue
                for j in range(i+2, n):
                    if ma + 1 == l[j]:
                        ma = l[j]
                        maxL = max(maxL, j-i+1)
                    else:
                        break
        print(maxL)
    except EOFError:
        break

3、31 ms 4216K

while True:
    try:
        n = int(input())
        l = list(map(int, input().split()))
        l = sorted(list(set(l)))
        tmp = maxL = 1
        n = len(l)
        for i in range(1, n):
            if l[i] - l[i-1] == 1:
                tmp += 1
            else:
                maxL = max(maxL, tmp)
                tmp = 1
        print(max(maxL, tmp))
    except EOFError:
        break
全部评论
题目确实有歧义,他的意思是子数组在排序前也要连续,我死在一个用例上输入 1,10,2,9,3.我的代码输出为3错误,用例输出为1. import java.util.*; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int[] arr = null; final int N = scan.nextInt(); arr = new int[N]; for(int i = 0;i
点赞 回复 分享
发布于 2020-11-09 10:27

相关推荐

一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务