引用 8 楼 Life_Hunter 的回复:引用 2 楼 csdn5211 的回复:这个不难啊,基本就是寻找最大值的变种,可不就是O(n)。 你再想想吧,这个真的不难。 另外你打错了题吧,是[100,1,2,3]吧? 没有打错,是[100,1,2,3]那就太容易了。事实上[100,1,99,2,60,3]对应的最大连续自然序列也是[1,2,3] 这个“连续”……
引用 2 楼 csdn5211 的回复:这个不难啊,基本就是寻找最大值的变种,可不就是O(n)。 你再想想吧,这个真的不难。 另外你打错了题吧,是[100,1,2,3]吧? 没有打错,是[100,1,2,3]那就太容易了。事实上[100,1,99,2,60,3]对应的最大连续自然序列也是[1,2,3] 这个“连续”指数组排序后自然数间能连续,而和未排序前的位置……
基于3#的思路。 数组b可以做的复杂一些,分几个级别,比如第一个级别1-99999999 100000000-199999999 .... 第二个级别1- 9999 10000-19999 ... 第三个级别 1-99 100-199 ... 这样就能快速定位,也节省内存(需要的时候再分配二三级)。 每个位置不存bool值存指针,指针里面存计数,每次插入……
或者考虑用线段树? 每个数字都是长度为1的区间。将所有数字插入树后,找最找的那一段
引用 18 楼 Life_Hunter 的回复:引用 16 楼 akirya 的回复:连续自然数序列,限制已经很大了 只要后面一个数比前面一个数+1,就长度+1,否则就归零。归零前 将长度跟已保存最大长度比较一下 遍历结束之后,以保存最大长度不就是结果了么。 你还是没理解题目中“连续”的含义 那你解释下 连续 的含义
引用 17 楼 a707000646 的回复:可以考虑模拟kmp算法 求详解??
引用 16 楼 akirya 的回复:连续自然数序列,限制已经很大了 只要后面一个数比前面一个数+1,就长度+1,否则就归零。归零前 将长度跟已保存最大长度比较一下 遍历结束之后,以保存最大长度不就是结果了么。 你还是没理解题目中“连续”的含义
可以考虑模拟kmp算法
连续自然数序列,限制已经很大了 只要后面一个数比前面一个数+1,就长度+1,否则就归零。归零前 将长度跟已保存最大长度比较一下 遍历结束之后,以保存最大长度不就是结果了么。
3,882
社区成员
9,045
社区内容
加载中
试试用AI创作助手写篇文章吧