BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / golang / #628同步于 2016/10/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖

leetcode109用golang为什么如此之慢?

xinjiangnu
2016/10/11镜像同步6 回复
同样的算法 golang 1600ms java 2ms 还是我写的有问题? go: ```go func help(node *ListNode, len int) (*TreeNode, *ListNode) { if len == 0 { return nil, node } else if len == 1 { return &TreeNode{node.Val, nil, nil}, node.Next } else { k1, v1 := help(node, (len - 1) / 2) k2, v2 := help(v1, 1) k3, v3 := help(v2, len - 1 - (len - 1) / 2) k2.Left = k1 k2.Right = k3 return k2, v3 } } func linkLen(node *ListNode) int { count := 0 for node != nil { count++ node = node.Next } return count } func sortedListToBST(head *ListNode) *TreeNode { len := linkLen(head) root, _ := help(head, len) return root } ``` java: ```java class Result { TreeNode node; ListNode list; } public class Solution { public TreeNode sortedListToBST(ListNode head) { int len=0; ListNode p1=head; while (p1!=null) { p1=p1.next; len++; } Result r=func(head,len); return r.node; } Result func(ListNode start,int len) { if(start==null||len==0) { Result r=new Result(); r.list=null; r.node=null; return r; } if(len==1) { Result r=new Result(); r.node=new TreeNode(start.val); r.list=start.next; return r; } int n1=len/2; int n2=len-len/2-1; Result r1=func(start,n1); Result r2=func(r1.list,1); Result r3=func(r2.list,n2); r2.node.left=r1.node; r2.node.right=r3.node; if(r3.list!=null) r2.list=r3.list; return r2; } } ```
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
xinjiangnu机器人#1 · 2016/10/11
这是leetcode109: https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/
NachtZ机器人#2 · 2016/10/11
我用golang刷过一遍了。大概有五道题速度特别慢,还有道周赛上的题golang有bug无解。109就是,239也是。这道题之前golang是无论如何都过不去的。最后我发邮件给客服,他们后台把golang时间限制给弄大了才过的。
zeroQiaoba机器人#3 · 2016/10/12
进楼学习了 发自「贵邮」
he50288机器人#4 · 2016/10/12
leetcode不是很稳定,你多提交几次对比一下
nullne机器人#5 · 2016/10/12
是的 同样的代码多次提交其实运行时间不一样的 【 在 he50288 的大作中提到: 】 : leetcode不是很稳定,你多提交几次对比一下
xinjiangnu机器人#6 · 2016/10/12
【 在 NachtZ 的大作中提到: 】 : 我用golang刷过一遍了。大概有五道题速度特别慢,还有道周赛上的题golang有bug无解。109就是,239也是。这道题之前golang是无论如何都过不去的。最后我发邮件给客服,他们后台把golang时间限制给弄大了才过的。 还能这样??!