fszaer

leetcode 也是很会玩啦

  •  
  •   fszaer · Jun 13, 2015 · 3795 views
    This topic created in 4161 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
    ryd994
    ryd994
    Jun 14, 2015 via Android
    2
    目前看见最好的就是强制cast指针,除了可移植性可能不太好之外
    还有什么能比O(1)更快……
    kcworms
    kcworms
    Jun 14, 2015
    3
    @ryd994 怎么做才能O(1)呢?难道你说的是保持二叉树本身不变,访问的时候翻转地访问左右子树?
    msg7086
    msg7086
    Jun 15, 2015
    4
    @kcworms 相当于交换对象方法的函数地址。
    用ruby的话来说,就相当于
    alias :temp, :left
    alias :left, :right
    alias :right, :temp

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

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