1
coderluan 2020-11-05 18:08:28 +08:00
设置一个 bool 数组, 初始为 0, 然后遍历输入数组, 把对应的位数设为 1, 完事之后这个问题就转化成求 bool 数组中最长连续 1, 遍历一遍就有了.
|
2
coderluan 2020-11-05 18:10:40 +08:00
拿 "2. 4. 3. 6"举例. 生成数组[0,0,0,0,0,0,0], 然后变成[0,1,1,1,0,1,0], 结果就是 3.
|
3
abusizhishen OP @coderluan 明白了,你说的是位图,是一种思路,但是这个数组大小不好设置,另外如果是 1,2,3,100w 这种,位图会非常大
|
4
abusizhishen OP 面试官说的是用栈或者堆来实现,但是不能使用排序,我实在想不出来
|
5
coderluan 2020-11-05 20:26:41 +08:00
@abusizhishen 搜了下,这题 leetcode 原题,翻了下前两页,一般都是 hash 或者排序做的, 没看见堆栈的解法,楼主自己翻翻看吧,题目叫 longest-consecutive-sequence,
|
6
abusizhishen OP @coderluan 看到了,谢谢,
|