V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abusizhishen
V2EX  ›  程序员

面试遇到一道题,没有思路,大家有什么意思

  •  
  •   abusizhishen · 2020-11-05 17:03:20 +08:00 · 878 次点击
    这是一个创建于 1489 天前的主题,其中的信息可能已经有所发展或是发生改变。
    求字符串中最大的连续整数长度
    如 “11,12,9,8,13,14”
    连续整数为 11,12,13,14,所以长度为 4,要求 o(n)复杂度
    coderluan
        1
    coderluan  
       2020-11-05 18:08:28 +08:00
    设置一个 bool 数组, 初始为 0, 然后遍历输入数组, 把对应的位数设为 1, 完事之后这个问题就转化成求 bool 数组中最长连续 1, 遍历一遍就有了.
    coderluan
        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.
    abusizhishen
        3
    abusizhishen  
    OP
       2020-11-05 18:48:41 +08:00
    @coderluan 明白了,你说的是位图,是一种思路,但是这个数组大小不好设置,另外如果是 1,2,3,100w 这种,位图会非常大
    abusizhishen
        4
    abusizhishen  
    OP
       2020-11-05 18:50:22 +08:00
    面试官说的是用栈或者堆来实现,但是不能使用排序,我实在想不出来
    coderluan
        5
    coderluan  
       2020-11-05 20:26:41 +08:00
    @abusizhishen 搜了下,这题 leetcode 原题,翻了下前两页,一般都是 hash 或者排序做的, 没看见堆栈的解法,楼主自己翻翻看吧,题目叫 longest-consecutive-sequence,
    abusizhishen
        6
    abusizhishen  
    OP
       2020-11-08 11:12:29 +08:00 via iPhone
    @coderluan 看到了,谢谢,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1094 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:31 · PVG 03:31 · LAX 11:31 · JFK 14:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.