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

Leetcode - 383 赎金信

  •  
  •   Northxw · 2019-03-25 23:59:04 +08:00 · 2055 次点击
    这是一个创建于 1851 天前的主题,其中的信息可能已经有所发展或是发生改变。

      这是一道简单题,但是我也会尽可能的把它做好,代码提及已经通过,但是我自己产生一个疑惑。下面是我第一次提交的代码(耗时 64ms):

    class Solution:
        def canConstruct(self, ransomNote, magazine):
            rans = ransomNote.replace('', ' ').split()
            mags = magazine
            for i in range(len(ransomNote)):
                if rans[i] in mags:
                    mags = mags.replace(rans[i], '',1)
                    rans[i] = ''
    
            if not ''.join(rans):
                return True
            return False
    

      可以看到,mags 对 magazine 做了引用,然后,修改代码如下:

    class Solution:
        def canConstruct(self, ransomNote, magazine):
            rans = ransomNote.replace('', ' ').split()
            for i in range(len(ransomNote)):
                if rans[i] in mags:
                    magazine = magazine.replace(rans[i], '',1)
                    rans[i] = ''
    
            if not ''.join(rans):
                return True
            return False
    

      再次提交后,代码耗时达到 96ms。 按道理,引用虽然没开辟新内存,但耗时相差也不会这么大啊,求解。

    8 条回复    2019-03-26 10:01:13 +08:00
    shiji
        1
    shiji  
       2019-03-26 00:02:01 +08:00
    Leetcode 的运行时间不是很靠谱,100%内的误差不算啥。

    内存也一样。 我用 PHP 刷题内存基本都稳定在 14-16M 左右。
    Northxw
        2
    Northxw  
    OP
       2019-03-26 00:16:17 +08:00 via Android
    @shiji emmm... 如果这样的话, 就是个 bug😁
    roundRobin
        3
    roundRobin  
       2019-03-26 00:40:43 +08:00
    要养成只看复杂度的习惯。。。排名 top1%和 99%很可能时间空间复杂度都是一样的
    Northxw
        4
    Northxw  
    OP
       2019-03-26 06:48:13 +08:00 via Android
    @roundRobin 谢谢啦
    jiezhi
        5
    jiezhi  
       2019-03-26 07:06:54 +08:00 via iPhone
    同样,我优化过的代码排名更低了,迷一样。

    可能非订阅用户,执行环境随便给的?
    Northxw
        6
    Northxw  
    OP
       2019-03-26 07:49:24 +08:00 via Android
    @jiezhi 不懂
    luomu24
        7
    luomu24  
       2019-03-26 09:40:26 +08:00
    用的中文版吗。最近 leetcode 的运行时间就是个迷。不靠谱。
    Northxw
        8
    Northxw  
    OP
       2019-03-26 10:01:13 +08:00 via Android
    @luomu24 嗯啊。是 CN。还行吧, 看着也比较亲切。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4482 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:06 · PVG 18:06 · LAX 03:06 · JFK 06:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.