c**********y 发帖数: 38 | 1 同样的一个题,比如说wordbreakII,都是n的平方的复杂度,C++是40ms,java是469ms
,好多别的题目也是这样
oj是怎么判定时间复杂度是否超标的?
看时间不科学吧?时间复杂度跟语言没关系,同样的算法不能换个语言就不通过了吧,
还是每个submission都要跑几个数量级递增的testcase然后比较曲线?这样貌似又太慢。
元芳,你怎么看咧? |
z*******3 发帖数: 13709 | 2 jvm启动需要时间,掉入jit也需要时间
一般要调用两次以上的类才会使用jit
所以以前搞word ladder 2我都先强行让leetcode执行两遍之后
第三遍一般就过了,后来好像改了标准,懒得再搞了
纠结这点ms没啥意义,现实中你不会在乎这点东西的
少数情况比如android这种手机系统例外
客户端因为经常性启动关闭app,所以导致虚拟机调用的class经常换
所以如果启动太慢会影响客户体验,所以android用的是apk而不是jar以优化效率
实在不行,你把java文件编译成native code去执行
不过这样跨平台搞死人,一个最常见例子就是mac上安装scipy就跟疯了一样
要先装xcode,然后commandline,然后安装gfortran,然后numpy,然后scipy
期间还有无数的warning,胆战心惊
都是这些烂包不跨平台造成的恶果,不停地擦屁股 |
r****t 发帖数: 10904 | 3 就是你说的后面那种做法
469ms
慢。
【在 c**********y 的大作中提到】 : 同样的一个题,比如说wordbreakII,都是n的平方的复杂度,C++是40ms,java是469ms : ,好多别的题目也是这样 : oj是怎么判定时间复杂度是否超标的? : 看时间不科学吧?时间复杂度跟语言没关系,同样的算法不能换个语言就不通过了吧, : 还是每个submission都要跑几个数量级递增的testcase然后比较曲线?这样貌似又太慢。 : 元芳,你怎么看咧?
|
s**x 发帖数: 7506 | 4 你为什么不在自己的机器上跑?怎么编译?怎么调试?我搞不懂leetcode 为什么搞OJ。
多在自己机器上跑。geekforgeeks 好多题都可以拿来直接run。 |