欢迎访问
讨论版列表 - 本站建设 - 主题数: 15 | 文章数: 32 | 管理员: admin

本站建设

版面 | 文摘区 | 马克区

文章数: 5 | 分页: << 1 >>
iamserious
[回复] [修改] [删除] [返回版面] 1  
作者: iamserious, 讨论版: 本站建设, 发表时间: 2013-09-10 08:04:08 PST
标题: 貌似很不稳定
关键字: 不稳定

在做20题 recover binary search tree
同样的code,有时候能过,大部分时候是超时;
代码如下:
class Solution { 
public: 
    void recoverBST(TreeNode *root) {
        if (root == NULL) {
            return;
        }
        TreeNode* first = NULL;
        TreeNode* second = NULL;
        TreeNode* pre = NULL;
        inorder(root, pre, first, second);
        if (first != NULL && second != NULL) {
            int tmp = first->val;
            first->val = second->val;
            second->val = tmp;
        }
    }   
    void inorder(TreeNode* node, TreeNode*& pre, 
            TreeNode*& first, TreeNode*& second) {
        if (node == NULL) {
            return;
        }   
        if (node->left != NULL) {
            inorder(node->left, pre, first, second);
        }   
        if (pre != NULL && pre->val > node->val) {
            if (first == NULL) {
                first = pre;
            }   
            second = node;
        }   
        pre = node;
        if (node->right != NULL) {
            inorder(node->right, pre, first, second);
        }   
    }   
};


--

※ 来源: homecox.com  [来自: 112.]


admin
[回复] [修改] [删除] [返回版面] 2  
作者: admin, 讨论版: 本站建设, 发表时间: 2013-09-10 14:04:43 PST
标题: Re: 貌似很不稳定
关键字: 不稳定

你的代码是优化的代码, 我的解法也差不多.

这是最近三天的提交记录, 通过率并不差: 
 error 	 99 	 2013-09-10 
 pass 	 92 	 2013-09-10 
 fail 	 60 	 2013-09-10 
 fail 	 74 	 2013-09-09 
 pass 	 30 	 2013-09-09 
 error 	 33 	 2013-09-09 
 fail 	 22 	 2013-09-08 
 error 	 35 	 2013-09-08 
 pass 	 46 	 2013-09-08

Timeout时间的选取有两三个地方, 组合需要反复微调, 这需要一段时间来调整. 

另外人多了以后服务器压力的确会很大. 目前OJ是用ajax调用后台的. 可以容易地扩展到多台服务器. 不过到时要多花钱租用服务器.

不知道Amazon EC2和阿里云的服务和价格分别怎么样.


--

※ 来源: homecox.com  [来自: 128.]


admin
[回复] [修改] [删除] [返回版面] 3  
作者: admin, 讨论版: 本站建设, 发表时间: 2013-09-10 14:39:50 PST
标题: Re: 貌似很不稳定
关键字:

好象您是来自国内? 那往返是要慢一些. 我把ajax timeout延长了一点.


--

※ 来源: homecox.com  [来自: 128.]


iamserious
[回复] [修改] [删除] [返回版面] 4  
作者: iamserious, 讨论版: 本站建设, 发表时间: 2013-09-12 07:11:07 PST
标题: Re: 貌似很不稳定
关键字:

确实来自国内;
Timeout计算应该只包括程序运行的时间吧,不能从代码提交开始计算

【 在 admin 发表于 2013-09-10 14:39:50 的大作中提到: 】
: 好象您是来自国内? 那往返是要慢一些. 我把ajax timeout延长了一点.


--

※ 来源: homecox.com  [来自: 218.]


admin
[回复] [修改] [删除] [返回版面] 5  
作者: admin, 讨论版: 本站建设, 发表时间: 2013-09-12 14:09:27 PST
标题: Re: 貌似很不稳定
关键字:

一个是程序运行时间的timeout。比如用户函数如果包含死循环,那必须能限期杀掉过期进程。
另一个是ajax调用的timeout。有时候用户浏览器会和服务器端失去联系,这时也不能一直等下去,要通知用户超时。
Java的timeout一般需要比C++长。

Timeout太长会耗用过多系统资源,太短又会来不及反馈给用户就中断了。

其实你的提交纪录通过居多,但你说大部分时候是超时,那就应该是ajax调用的timeout需要增加了。


--

※ 来源: homecox.com  [来自: 66.]


Reply

Please log in first.