fszaer

leetcode 也是很会玩啦

  •  
  •   fszaer · Jun 13, 2015 · 3374 views
    This topic created in 3999 days ago, the information mentioned may be changed or developed.

    https://leetcode.com/problems/invert-binary-tree/

    This problem was inspired by this original tweet by Max Howell:
    Google: 90% of our engineers use the software you wrote (Homebrew),but you can’t invert a binary tree on a whiteboard so fuck off.

    这题还是easy的哦WWWWW

    12 replies    2015-06-15 11:50:21 +08:00
    101
        1
    101  
       Jun 13, 2015
    ryd994
        2
    ryd994  
       Jun 14, 2015 via Android
    目前看见最好的就是强制cast指针,除了可移植性可能不太好之外
    还有什么能比O(1)更快……
    kcworms
        3
    kcworms  
       Jun 14, 2015
    @ryd994 怎么做才能O(1)呢?难道你说的是保持二叉树本身不变,访问的时候翻转地访问左右子树?
    msg7086
        4
    msg7086  
       Jun 15, 2015
    @kcworms 相当于交换对象方法的函数地址。
    用ruby的话来说,就相当于
    alias :temp, :left
    alias :left, :right
    alias :right, :temp

    这样本来你访问n.left的时候,就变成调用Node::right()了。

    估计只对动态语言有效?
    ryd994
        5
    ryd994  
       Jun 15, 2015
    @msg7086 C有效啊
    只要编译器不要瞎重排struct里的内存分配就行
    msg7086
        6
    msg7086  
       Jun 15, 2015
    @ryd994 求个AC的代码观摩下~
    ryd994
        7
    ryd994  
       Jun 15, 2015   ❤️ 1
    @msg7086 /t/197730 48楼那个应该可以吧
    msg7086
        8
    msg7086  
       Jun 15, 2015   ❤️ 1
    @ryd994 我觉得这个应该AC不了吧。
    静态语言取数据是跟着地址走。动态语言才是当场根据方法名来求值的吧。
    ryd994
        9
    ryd994  
       Jun 15, 2015
    @msg7086 这个编译的时候就可以知道啊
    ryd994
        10
    ryd994  
       Jun 15, 2015
    @msg7086 只是编译器取指针时如何解释的区别
    原本left编译成left的地址,现在left编译为right的地址
    msg7086
        11
    msg7086  
       Jun 15, 2015   ❤️ 1
    @ryd994 但是对于online judge来说,判断答题是否正确的代码是不可能被你修改的吧。
    如果是Ruby的话强行Monkey Patch进Meta Class大概还有可能AC,C语言我觉得没戏。
    你可以试试?
    kcworms
        12
    kcworms  
       Jun 15, 2015
    @msg7086 #7里提到的方法和修改二叉树本身有区别。如果是aReverseNode->left->left->right这样访问没问题,但代码里有其他参数为NormalNode的函数就不好使了,需要全部改掉。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1126 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 17:56 · PVG 01:56 · LAX 10:56 · JFK 13:56
    ♥ Do have faith in what you're doing.