问题列表 - 第13184页

PHP指定方法的返回类型提示

为方法指定返回类型提示的正确语法是什么?

例如,我有这样一个方法:

private static function ConstructPDOObject($dbname) 
{
      $hostname =self::HOSTNAME;
        $username = self::USERNAME;
        $password = self::PASSWORD;
        $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
        return $dbh;
}
Run Code Online (Sandbox Code Playgroud)

我想,每当我调用上述方法时,IDE都会向我展示PDO的方法.

如何添加类型提示?

php

16
推荐指数
3
解决办法
2万
查看次数

从不断增长的集合中找出中值

我在一次采访中遇到了一个有趣的算法问题.我给出了答案,但不确定是否有更好的主意.所以我欢迎大家写一些他/她的想法.

你有一个空集.现在元素逐个放入集合中.我们假设所有元素都是整数,它们是不同的(根据集合的定义,我们不考虑具有相同值的两个元素).

每次将新元素添加到集合中时,都会询问集合的中值.中值定义与数学中的相同:排序列表中的中间元素.这里,特别地,当集合的大小是偶数时,假设set = 2*x的大小,中值元素是集合的第x个元素.

一个例子:从空集开始,当添加12时,中位数为12,当添加7时,中位数为7,当添加8时,中位数为8,当添加11时,中位数为8,当添加5,中位数为8,当加16时,中位数为8,...

请注意,首先,元素被添加到逐个设置,其次,我们不知道要添加的元素.

我的答案.

由于这是一个关于寻找中位数的问题,因此需要进行排序.最简单的解决方案是使用普通数组并保持数组排序.当新元素到来时,使用二进制搜索来查找元素的位置(log_n)并将元素添加到数组中.由于它是一个普通的数组,因此需要移动阵列的其余部分,其时间复杂度为n.插入元素后,我们可以使用实例时间立即获得中位数.

最糟糕的时间复杂度是:log_n + n + 1.

另一种解决方案是使用链接列表.使用链接列表的原因是消除了移动阵列的需要.但是找到新元素的位置需要线性搜索.添加元素需要立即时间,然后我们需要通过遍历数组的一半来找到中值,这总是需要n/2次.

最差时间复杂度为:n + 1 + n/2.

第三种解决方案是使用二叉搜索树.使用树,我们避免移动数组.但是使用二叉搜索树来查找中位数并不是很有吸引力.所以我改变二叉搜索树的方式总是左子树和右子树是平衡的.这意味着在任何时候,左子树和右子树都具有相同数量的节点,或者右子树比左子树中的节点多一个节点.换句话说,确保在任何时候,根元素是中值.当然,这需要改变树的构建方式.技术细节类似于旋转红黑树.

如果树被正确维护,则确保WORST时间复杂度为O(n).

因此,这三种算法都与集合的大小成线性关系.如果不存在子线性算法,则可以将这三种算法视为最优解.由于它们彼此之间没有太大区别,因此最好的是使用链接列表最容易实现,这是第二个.

所以我真的很想知道,这个问题是否会有一个亚线性算法,如果是这样的话会是什么样的.有什么想法吗?

史蒂夫.

algorithm

28
推荐指数
3
解决办法
2万
查看次数

如何在完整的无向图中找到哈密顿环的周期数?

有人可以解释如何在完整的无向图中找到哈密顿循环的数量吗?

维基百科说公式是(n-1)!/2,但是当我使用这个公式计算时,K3只有一个周期而K4有5.我的计算是不正确的?

algorithm graph cycle

10
推荐指数
1
解决办法
3万
查看次数

多个窗口,但任务栏上还有多个项目

我正在设置一个有三个不同窗口的程序.我只是在用..

Window1 win1 = new Window1(); win1.show();

...为每个额外的窗户.问题是每个窗口都会在任务栏上打开一个新选项卡.无论如何我仍然可以在任务栏上只有一个相关项目的三个窗口吗?

如果可能的话,我不想让它们成为所有儿童形式,并且必须坐在另一个盒子里面.

谢谢

wpf taskbar

11
推荐指数
2
解决办法
2448
查看次数

ASP.NET中的Response.Write是一个坏主意吗?

我公司的大部分Web编程背景都是PHP,因此ASP.NET MVC是我们最新的Web应用程序的合理选择,它也需要作为单独的Winforms应用程序的后端工作.然而,我们一直在寻找自己走在我们通常在php中遵循的道路 - 回应大量条件输出的标签.这是ASP.NET MVC中的一个坏主意吗?

例如,没有Response.Write:

      <%if (OurUserSession.IsMultiAccount)
        {%>
        <%=Html.ActionLink("SwitchAccount", "Accounts", "Login") %><span>|</span>
      <%}%>
Run Code Online (Sandbox Code Playgroud)

使用Response.Write:

      <%if (OurUserSession.IsMultiAccount)
          Response.Write (Html.ActionLink("Swith Account", "Accounts", "Login") + "<span>|</span>");
      %>
Run Code Online (Sandbox Code Playgroud)

这里的差异相当小,但有时我们的视图逻辑变得更复杂(非常复杂的视图逻辑,即除了布尔值之外,我们只是卸载到控制器).第二个似乎更容易阅读,但我想看看是否有任何关于此事的想法.

asp.net-mvc

4
推荐指数
1
解决办法
674
查看次数

什么是大型站点最可扩展的基于PHP的目录结构?

我正在创建一个非常大的基于PHP MVC的站点,它将拥有一个庞大的php类库,javascripts和许多css文件(更不用说MVC的大量文件).

我有史以来第一次花时间计划一个干净有序的目录结构.

您通常使用哪些目录结构,哪些目录结构在有数千个文件时最容易管理?

php directory

28
推荐指数
3
解决办法
4万
查看次数

使用jquery查找两个元素之间的节点数?

我在找出快速完成(看似)简单任务的方法时遇到了一些麻烦.说我有以下html:

<ul>
  <li>One</li>
  <li>Two</li>
  <li id='parent'>
    <ul>
      <li>Three</li>
      <li>
        <ul>
          <li>Four</li>
          <li id='child'>Five</li>
        </ul>
      </li>
      <li>Six</li>
    </ul>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

并有以下两个要素:

var child = $("#child");
var parent = $("#parent");
Run Code Online (Sandbox Code Playgroud)

在这个例子中,很明显:

child.parent().parent().parent().parent();
Run Code Online (Sandbox Code Playgroud)

将与"父"相同的节点.但是我正在遍历的列表是可变大小的,所以我需要找到一种方法来找出我需要经历多少'.parent()才能到达那个父节点.我总是知道孩子和父母在哪里,我只是不知道他们之间有多少'层'.

有没有内置的jQuery方法来做这样的事情,或者我最好的选择是获取父节点的递归函数,检查父节点是否是我想要的节点,如果没有调用它的父节点?

编辑:我可能没有足够清楚地解释自己.我的问题是没有得到父母,我的问题是找出孩子和父母之间有多少节点.在上面的示例中,child和parent之间有3个节点.这是我需要找到的数据.

javascript jquery

1
推荐指数
1
解决办法
1501
查看次数

Django预览,TypeError:'str'对象不可调用

我正在尝试制作预览功能.我正在阅读这个博客,Django Admin Preview,但现在我有以下错误,我不知道这意味着什么.

    Traceback (most recent call last):

     File "/home/user/webapps/django/lib/python2.5/django/core/handlers/base.py", line 92, in get_response
       response = callback(request, *callback_args, **callback_kwargs)

    TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)

我迷路了..

编辑:

谢谢伙计们/ gals,这是我的view.py和url.py:

    from diligencia.diligencias.views import preview

    url(r'^admin/diligencias/diligencia/(?P<object_id>\d+)/preview/$','preview'),
    (r'^admin/(.*)', admin.site.root),

    from diligencia.diligencias.models import Diligencia

    @staff_member_required
    def preview(request, object_id):
        return object_detail(request, object_id=object_id,queryset=Diligencia.objects.all(), template_object_name = 'diligencia_detail.html', )
Run Code Online (Sandbox Code Playgroud)

django django-templates django-admin

3
推荐指数
1
解决办法
1万
查看次数

PHP PDOStatement:获取一行,作为第一列作为数组的键

PDOStatement用来查询数据库.每当我得到一个返回的行时,我希望将它$row[0]作为键提取到数组中,并将行中的后续元素作为值.

当然,我可以编写一个foreach循环和if条件组合来完成这项工作,如下所示:

private static function GetMySQLResult($dbname, $sqlString) {


        $dbh =  self::ConstructPDOObject($dbname);
         $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $result=array();
         foreach ($dbh->query($sqlString) as $row)
         {
            $result[$row[0]][]=$row[1];  // the simplest case for 2 columns, should add more to handle more columns

         }

         return $result;

}
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种现有的方法; 有没有这样的方法已经存在?

php pdostatement

22
推荐指数
3
解决办法
1万
查看次数

as3 - 从父swf到子swf的dispatchEvent

我有一个主要的"父"swf加载其他几个swfs.如果在主SWF中发生了某些事情,我需要告诉其中一个孩子swf.

这似乎相反,相反.任何一个孩子都可以简单地调用Event(),我可以设置主swf来监听事件.但是,我无法让子swf捕获父级调度的任何事件.怎么做?

flash events dispatcher actionscript-3

4
推荐指数
1
解决办法
1万
查看次数